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;

}

しかし、プロジェクトで分析を実行すると、このような警告が表示されます

「+1 (所有) 保持カウントが予期される呼び出し元に +0 保持カウントを持つオブジェクトが返される」

分析を実行した後の結果

なぜ Xcode がここで私に警告を発しているのかについて、誰かが私を指摘できますか。変数を返す正しい方法は何ですか?

4

1 に答える 1

4

問題はコード内ではなく、メソッドの名前にあります。Objective C では、名前が で始まるinitnew、アナライザーによって想定されるメソッドは、保持カウントが 1 のオブジェクトを返します。保持カウントが 0 のオブジェクトを返すため、メソッド名に を含めないでくださいnew

于 2012-11-09T15:50:40.440 に答える