iOS self.+变量 (setter &getter) 定义 自我总结

转载说明(谢谢)
http://blog.csdn.net/a21064346/article/details/7839882
点击打开链接
 
@synthesize season = _season;

- (void)setSeason:(Season *)s {
    // set _season
    //Note, if you want to retain (as opposed to assign or copy), it should look someting like this
    //[_season release];
    //_season = [s retain];
}

- (Season *)season {
    // return _season
}

我来解释一下上面这段代码:
-(void)set+(成员变量第一个字母大写) 这个方法 是 自定义 重写 该成员变量 的  setter 方法
当一个成员变量 以 self.XXX = NNN 的形式赋直的时候:1.若有重写setter XXX成员变量 方法,运行该方法
     2.若无,则会调用 系统默认的 -(void)setXXX方法,[_XXX release],[NNN retain],然后保存到_XXX中
 
-(Season *)season  以成员变量XXX命名 这个方法是 自定义重写 该成员变量的 getter方法
当我们调用  例如 [NSArray arrayWithObject:self.XXX].若你重写了 getter方法,那么每次调用self.XXX去完成某个语句的时候,都会取出_XXX(例子中为_season)的值 。若没有 重写getter方法,那么系统会默认的调用 一个没有 实例(instance)化的 成员变量去用。当然,它的内存分配空间 是00000.
 
getter方法,你可以对它实例化,但是不要给它 autorelease或者release,不然会出现多次释放的错误(retain 属性+对应的dealloc中已经施放了一次)。
 
若有 不足,欢迎补充。 :)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值