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

来源:互联网 发布:淘宝访客数影响因素 编辑:程序博客网 时间:2024/06/18 17:21
转载说明(谢谢)
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中已经施放了一次)。
若有 不足,欢迎补充。 :)