【发布时间】:2011-03-16 19:25:40
【问题描述】:
下面的sn-p我看过不少:
在标题中:
SomeClass *bla;
@property(nonatomic,retain) SomeClass *bla;
在实现文件中:
@synthesize bla;
然后
self.bla = [[SomeClass alloc] init];
我认为这个分配将 'bla' 的保留计数增加了 2;一次通过 alloc/init 调用,然后通过我们要求通过综合属性设置器发生的保留。
因此,我通常这样声明我的属性:
在标题中:
SomeClass *_bla; // note the underscore
@property(nonatomic,retain) SomeClass *bla;
在实现文件中:
@synthesize bla = _bla;
然后
_bla = [[SomeClass alloc] init];
如果我最初的假设是正确的 - 我很想知道是否有“正确”的方法来做到这一点,即属性的声明、初始化和内存管理?
【问题讨论】:
-
首先,欢迎来到 Stack Overflow。在 Stack 上要做的重要一件事就是接受对你有用的答案。这对回答者很重要,对您自己的声誉也很重要。
标签: iphone objective-c memory-management properties retain