2

Leaks Instrument がこれがリークであると表示するのはなぜですか? ARCを使用しています。また、漏れないようにするにはどうすればいいですか?ところで、「強い」を「弱い」に変更しようとしましたが、警告が表示されました"Assigning retained object to weak property; object will be released after assignment"

@property (nonatomic, strong) NSMutableArray *myArray;

-(id)init{
    self = [super init];
    if (self){
        _myArray = [[NSMutableArray alloc] init]; //<== leak here
    }
    return self;
}
4

2 に答える 2

0

どちらかまたはメソッド内でアクセスしないでくださいproperties。代わりに、次のようにバッキング ivar を直接設定する必要があります。getterinitdealloc

-(id)init
{  
  self = [super init]; 

  if (self)
  {  
    _myArray = [[NSMutableArray alloc] init]; //<== leak here
  } 

  return self;  
}

注: auto-synthesizeXcode の最新バージョンでこの機能を使用している場合 (つまり、手動で@synthesize行を記述していない場合)、バッキング ivar はプロパティと同じ名前になり、前にアンダースコアが付きます。

上記を試して、リークがなくなるかどうかを確認してください。

幸運を。

于 2013-03-28T22:50:09.807 に答える
0

ARC が実際にオンになっていることを確認しますか? [self release] のようなものを追加して、コンパイルされるかどうかを確認してください。その場合、ARC はオンになっていません。

于 2013-03-28T22:43:39.267 に答える