我的问题看起来像十几个关于释放属性的问题,但我找不到我正在寻找的确切答案。
当使用 retain 声明属性时:
@property (nonatomic, retain) NSString * myString;
然后
@synthesize myString;
它生成具有保留和释放操作的 getter 和 setter。好的。
当然,必须在 dealloc 中释放属性。
-(void)dealloc {
[myString release];
myString = nil;
[super dealloc];
}
所以这很干净。
但是如果我从不使用 myString 怎么办?它是预初始化的吗?我的观点是 myString 保留计数为 0。但是在 dealloc 中释放 myString 会减少它并使应用程序崩溃?但它不会崩溃!
是一种更清洁的释放方式吗?
if(myString != nil) {
[myString release];
myString = nil;
}