@synthesize和@property关键字

同时重写settter和getter方法,不用运行时怎么实现?

@interface ViewController ()
{
    NSInteger _age;
}
@property (nonatomic, strong) NSString *name;
//这样就会生成setter和getter
@property (nonatomic, assign) NSInteger age;
@end

@implementation ViewController
//关联属性,生成方法
@synthesize age = _age;

- (NSInteger)age {
    return _age;
}
- (void)setAge:(NSInteger)age {
    _age = age;
}
#pragma mark - setter && getter

//不能setter和getter方法都重写
//- (void)setName:(NSString *)name {
//    _name = name;
//}
//- (NSString *)name {
//    return name;
//}

理解@property会自动生成setter和setter方法,当只使用这个属性时不同同时重写setter和getter方法,上面的@synthesize关键字完美解决了这个问题.将_age和age关联起来,和属性的使用效果相同.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容