我seeen下面的代码片段颇有几分:alloc + init与合成属性 - 是否会导致保留计数增加2?
在标题:
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];
Pr我的初步假设是正确的 - 我有兴趣知道是否有“正确”的方式来做到这一点,即属性的声明,初始化和内存管理?
首先,欢迎使用Stack Overflow。在Stack上做的重要事情之一就是接受适合你的答案。这对回答者和你自己的声誉非常重要。 – smathy 2012-06-22 20:47:07