iOSは、関数内のインスタンスを初期化して、外部で使用します
-
29-10-2019 - |
質問
xcodeアナライザーは、メソッドが+1の保持カウントを持つObjective-Cオブジェクトを返すことを教えてくれます。
しかし、self.athletesは、関数の外部でも必要なオブジェクトです...この警告を解決するにはどうすればよいですか? もう一度ありがとう
アスリートは次のように宣言されています: ジェネラコディセタグプレ
解決
その行を次の行に置き換えます: ジェネラコディセタグプレ
ここに完全な説明を書きました:
他のヒント
あなたのプロパティは "RETAIN"で定義されているので、ドット表記を使用して追加の保持になります。[[NSMUTABLEARRAY ALLOC] INIT]からの戻り値は1の保持数を持ち、プロパティ宣言によって生成されたセッター関数を使用してプロパティを設定したとき、それは保持数2の保持数を持ちます。
修正するか、
self.athletes = [NSMutableArray array]; // Returns an autoreleased object
.
または、これを行うこともできます。
athletes = [[NSMutableArray alloc] init]; // Doesn't use the setter generated by the property declaration, so doesn't retain again.
. これを処理するための優れた方法があります(UIの作成時にこのパターンをすでに使用しています)。
NSMutableArray * athletesTemp= [[NSMutableArray alloc] init];
self.athletes= athletesTemp;
[athletesTempリリース];
ここでは、自動解放オブジェクトの負荷を運ぶ必要はありません。
所属していません StackOverflow