1

我对 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(拥有)保留计数”

运行分析后看到的内容

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

4

1 回答 1

4

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

于 2012-11-09T15:50:40.440 回答