我已经看过以下代码段很多:
在标题中:
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];
如果我最初的假设是正确的 - 我很想知道是否有“正确”的方法来做到这一点,即属性的声明、初始化和内存管理?