私は同様の問題を検索しようとしましたが、良い解決策は見つかりませんでした。だから私は誰かが私を助けることを願っていますメモリリーク、nsmutablearrayおよびカスタムオブジェクト
は基本的に私は、カードのオブジェクトと配列を移入し、この方法では、リーク(tempArrayはこのループ上に作成し、移入さ)があります。
for(int i = 0; i < numberOfCards; i += 2) {
int randomNumber = (arc4random() % [tempArray count]);
NSNumber *number = [tempArray objectAtIndex:randomNumber];
[tempArray removeObject:number];
Card *card1 = [[Card alloc] initWithCategory:category andNumber:[number intValue]];
Card *card2 = [[Card alloc] initWithCategory:category andNumber:[number intValue]];
[number release];
[cards addObject:card1];
[cards addObject:card2];
}
の方法は、もう少しロジックが含まれていますが、私はこのループには漏れが含まれていることは間違いない。私がInstrumentsで実行すると、Cardオブジェクトは解放されません。私は配列を解放するdeallocメソッドで、私はこれも配列内のオブジェクトを解放すると思った?
-(void) dealloc {
[cards release];
[super dealloc];
}
私はcard1とcard2でautoreleaseを試してみましたが、クラス変数にしようとしました。しかし、何も助けてくれないようです。いずれかがリークしているか、またはカード1またはカード2にリリースを追加しようとすると、アプリケーションがクラッシュします。誰でもここで何が間違っているのか考えていますか?
N.B.後あなたはそれを所有していないので 'number'を解放してはいけません。 – albertamg
よろしくお願いします。 –
あなたは大歓迎です:) – albertamg