IOS开发OC基础知识(一)

property和成员变量关系

声明一个数组:@property (nonatomic,strong)NSArray *array;
对数组进行懒加载,懒加载:也叫延迟加载,即在需要的时候才加载(效率低,占用内存小)。

- (NSArray *)array{
                      if(!_array){
                           _array = [NSArray array];
                     }
         return _array;
}

在这里我们并没有定义_array这个成员变量,但却可以在懒加载中使用,只可能是在声明属性时生成的_array成员变量。
我们知道在用property声明属性时会自动生成getter和setter方法,即:

@property (nonatomic ,assign)int age;
- (int)age{
    return _age;
}
- (void)setAge:(int)age{
         _age = age;
}

若只声明一个属性age,不使用@synthesize实现:编译器会使用_age作为属性的成员变量(若没有定义成员变量_age则会自动生成一个私有的成员变量_age;若已经定义了成员变量_age则使用自定义的成员变量_age。若此时定义的成员变量不是_age而是age则此时会自动生成一个成员变量_age,它跟自定义成员变量age没有任何关系);
若声明了一个属性age,使用@synthesize进行实现,则_age = age.

参考博客地址:http://www.cnblogs.com/kenshincui/p/3861302.html#field

你可能感兴趣的:(IOS开发OC基础知识(一))