美文网首页
IOS开发OC基础知识(一)

IOS开发OC基础知识(一)

作者: 云飘雾散 | 来源:发表于2016-10-12 02:08 被阅读0次

    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基础知识(一)

          本文链接:https://www.haomeiwen.com/subject/bazbyttx.html