如何声明用户定义的setter、getter方法



伙计们。

如何访问@property指令生成的变量?我了解到,当我在objective-c课程中使用自己的getter/setter时,前缀_可以访问。

//Person.h
#import <Foundation/Foundation.h>
@interface Person : NSObject
@property NSInteger age;
// getter
- (NSInteger)age;
// setter
- (void)setAge:(NSInteger)age;
@end
//  Person.m
#import "Person.h"
@implementation Person
// getter
- (NSInteger)age {
return _age;
}
// setter
- (void)setAge:(NSInteger)age {
_age = age;
}
@end

但那个代码给了我错误Use of undeclared identifier '_age'。我该怎么解决?

谢谢!

您应该为ivar添加显式合成,如下

@implementation Person
@synthesize age=_age;

最新更新