@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关联起来,和属性的使用效果相同.

你可能感兴趣的:(@synthesize和@property关键字)