2012-11-09 140 views
1

我在Objective-C編程中有些疑問。我有這樣的功能。Iphone內存管理警告

+ (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在這裏給我一個警告。什麼是返回任何變量的正確方法?

回答

4

問題不在於您的代碼內,而在您的方法名稱內。在Objective C中,分析器假定名稱以initnew開頭的方法返回保留計數爲1的對象。您將返回保留計數爲零的對象,因此您的方法名稱不應包含new

+0

賓果..你是對的。我改變了方法的名稱,然後警告就消失了。非常感謝.. – tek3