1
+ (Photo *)photoWithImage:(UIImage *)image {
return [[Photo alloc] initWithImage:image] ;// Potential leak of an object

}

メソッドは +1 の保持カウントを持つ Objective-C オブジェクトを返します オブジェクトは所有参照として呼び出し元に返されます (単一の保持カウントが呼び出し元に転送されます) オブジェクトのリーク: 名前 (photoWithImage) が copy で始まらないメソッドから割り当てられたオブジェクトが返されます。 mutableCopy、alloc、または new

+ (Photo *)photoWithFilePath:(NSString *)path {
return [[Photo alloc] initWithFilePath:path];
}// potential leak of an object

メソッドは +1 の保持カウントを持つ Objective-C オブジェクトを返します オブジェクトは所有参照として呼び出し元に返されます (単一の保持カウントが呼び出し元に転送されます) オブジェクトのリーク: 名前 (photoWithFilePath) が copy で始まらないメソッドから割り当てられたオブジェクトが返されます。 mutableCopy、alloc、または new

自動解放を使用したくない場合、それを修正する別の方法はありますか。

手伝ってくれてありがとう。

4

1 に答える 1

1

規則に従わないため、このエラーが発生します。規則に従うように調整する必要があります。返されたオブジェクトを自動解放したくないので、これらのメソッドの名前をnew(newPhotoWithImageおよびnewPhotoWithPath)で始まるように変更できます。

自動解放されたオブジェクトを返したくない理由はわかりません。たぶん、あなたがそれらの理由について詳しく説明すれば、私たちはより良い解決策を思いつくことができます。

于 2012-11-15T20:03:22.553 に答える