我目前正在开发一个由另一位开发人员启动的 iOS 应用程序。
通常,我为每个实例变量创建一个属性(为 int、bool 等赋值/为所有类保留)。
所以在我的项目中,这条线会导致泄漏:
myVar = [[NSString alloc] init]; (alloc/init +1, retain in setter +1, release in dealloc -1 => +1)
所以我使用:
NSString *tmpMyVar = [[NSString alloc] init];
[self setMyVar: tmpMyVar];
[tmpMyVar release];
或者:
NSString *tmpMyVar = [[[NSString alloc] init] autorelease];
[self setMyVar: tmpMyVar];
在这个新项目中,之前的开发人员没有使用@property/@synthesize,所以我想知道在这种情况下上一行代码的结果是什么(我猜它不会调用setter)?内存泄漏?
以前的开发者在dealloc方法中释放变量,和我一样。
非常感谢!