【发布时间】:2012-03-18 19:20:55
【问题描述】:
我的问题看起来像十几个关于释放属性的问题,但我找不到我正在寻找的确切答案。
当一个属性用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;
}
【问题讨论】:
标签: iphone memory-management properties retaincount