Objective-C内存管理教程和原理剖析(三)

@property (retain)@synthesize的默认实现

在这里解释一下@property (retain) ClassB* objB;@synthesize objB;背后到底发生了什么(retain property的默认实现)property实际上是gettersetter,针对有retain参数的property,背后的实现如下(请参考附件中的memman-getter-setter.m,你会发现,结果和memman-property.m一样):

setObjB中,如果新设定的值和原值不同的话,必须要把原值对象release一次,这样才能保证retain count是正确的。

由于我们在class内部retain了一次(虽然是默认实现的),所以我们要在dealloc方法中release这个成员变量。

示例代码文件链接:http://files.cnblogs.com/VinceYuan/objective-c-memman.zip

1 收藏 评论

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部