Iphone中的内存管理警告

时间:2012-11-09 15:48:10

标签: iphone memory-management

我对Objective-C编程有些怀疑。我有这样的功能。

+ (NSManagedObjectContext *) newContext {
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil)
{
    NSManagedObjectContext* managedObjectContext = [[[NSManagedObjectContext alloc] init] autorelease];
    [managedObjectContext setPersistentStoreCoordinator:coordinator];
    return managedObjectContext;
}
return nil;

}

但是当我对我的项目进行分析时,我看到的是这样的警告

  

“具有+0保留计数的对象返回给调用者,其中+1(拥有)   保留计数预计“

What I see after I run analyse

有人可以指出我为什么Xcode会在这里给我一个警告。返回任何变量的正确方法是什么?

1 个答案:

答案 0 :(得分:4)

问题不在于您的代码,而在于您的方法名称。在Objective C中,分析器假定名称以initnew开头的方法返回一个保留计数为1的对象。您将返回一个保留计数为零的对象,因此您的方法名称不应包含new