在我的应用程序委托(delegate)中,我有以下代码片段:
...
@synthesize model = _model;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
...
// Allocate the model
self.model = [[Model alloc] init];
...
}
- (void)dealloc
{
[_model release];
[super dealloc];
}
...
XCode Analyzer 在分配模型后报告潜在的内存泄漏(当我添加
autorelease
语句时它确实消失了,所以我猜它只是与行号混淆了)。这真的是内存泄漏还是分析器感到困惑?毕竟释放是在 dealloc 方法中完成的。那么这里是否存在内存泄漏的可能性以及在哪些情况下?如果是这样,我想解决方案是添加
autorelase
到分配。
最佳答案
如果属性定义为 retain
,则为内存泄漏。因为它的保留计数为 2 - 一次为 alloc
并且一旦分配给该属性(property)-但您只能释放一次。 Xcode 做 get confused关于 line numbers though .
关于ios - 分析器在检测内存泄漏方面真的值得信赖吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7594880/