在我的应用程序委托中,我有以下代码片段:
...
@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
,一次是分配给该属性-但您只释放了一次。 Xcode对get confused执行line numbers though。
关于ios - 分析仪在检测内存泄漏方面真的值得信赖吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7594880/