我对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会在这里给我一个警告。返回任何变量的正确方法是什么?
答案 0 :(得分:4)
问题不在于您的代码,而在于您的方法名称。在Objective C中,分析器假定名称以init
或new
开头的方法返回一个保留计数为1的对象。您将返回一个保留计数为零的对象,因此您的方法名称不应包含new
。