iOS中用@property定义属性时的注意点.

      用@property定义属性时,会自动生成getter和setter方法,还会生成一个带下划线的成员变量 _xx。

这个带下划线的成员变量 _xx主要用于以后再setting方法中记录到底setter了什么内容。

比如:懒加载就用 _xx,而不能用self.xx

-(NSArray *)apps

{

    if (!_apps) {

        NSArray *dictArray=[NSArray arrayWithContentsOfFile:[[NSBundle mainBundlepathForResource:@"apps.plist" ofType:nil ]];

        NSMutableArray *appArray =[NSMutableArray array];

        for (NSDictionary *dict in dictArray) {

            ZWApp *app=[ZWApp appWithDict:dict];

            [appArray addObject:app];

        }

        _apps=appArray;

                        

    }

    return _apps;

}

      注意一点就是如果手动生成了setter和getter方法,它就不会帮你生成一个带下划线的成员变量 _xx。

       

   另外如果@property(nonatomic,strong,readonly)

readonly属性时,@property就只会生成getter方法,还会生成一个带下划线的成员变量 _xx,没有setter方法。

   同样注意一点就是如果手动生成了getter方法,它就不会帮你生成一个带下划线的成员变量 _xx。


总结,自动生成都会帮你生成生成一个带下划线的成员变量 _xx,而手动生成的话它就不会帮你生成一个带下划线的成员变量 _xx。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值