xcodeアナライザーは、メソッドが+1の保持カウントを持つObjective-Cオブジェクトを返すことを教えてくれます。
しかし、self.athletesは、関数の外部でも必要なオブジェクトです...この警告をどのように解決できますか?再度、感謝します
アスリートは次のように宣言されます。
NSMutableArray *athletes;
@property (nonatomic, retain) IBOutlet NSMutableArray *athletes;
xcodeアナライザーは、メソッドが+1の保持カウントを持つObjective-Cオブジェクトを返すことを教えてくれます。
しかし、self.athletesは、関数の外部でも必要なオブジェクトです...この警告をどのように解決できますか?再度、感謝します
アスリートは次のように宣言されます。
NSMutableArray *athletes;
@property (nonatomic, retain) IBOutlet NSMutableArray *athletes;
プロパティは「保持」で定義されているため、ドット表記を使用すると、余分な保持が発生します。[[NSMutableArray alloc] init]からの戻り値の保持カウントは1であり、プロパティ宣言によって生成されたsetter関数を使用してプロパティを設定すると、保持カウントは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リリース];
ここでは、自動解放オブジェクトの負荷を運ぶ必要はありません。