2011-11-08 15 views
0

私はProfileと呼ばれるとてもシンプルなクラスを持っています。これには、UIImagesが含まれているavatarというNSMutableArrayが含まれています。このNSMutableArrayはnonatomic、retainプロパティとして宣言されています。プロファイルのinitメソッドで次のように割り当てられます。オブジェクトを解放できません

avatar = [[NSMutableArray alloc] initWithObjects: 
       [UIImage imageNamed:@"image1.png"], 
       [UIImage imageNamed:@"image2.png"], 
       [UIImage imageNamed:@"image3.png"], 
       [UIImage imageNamed:@"image4.png"], 
       [UIImage imageNamed:@"image5.png"],nil] ; 

プロファイルのdeallocメソッドで解放されます。

私のAppDelegateには、currentProfileというグローバルプロファイルオブジェクトがあります。これは、さまざまなファイルで使用されています。そして、私は別の配列でそれをコピーするために、このオブジェクトのアバター配列を解放する必要があります。しかし、配列を解放しているときにランタイムエラーが発生したため、コピーは行われません。私はコードを解析するとき、私は、次を得る:

プロパティ+ 0保持カウント(非所有参照)所有されていないオブジェクトの参照カウントの

不適切な減少とobjective-сオブジェクトを返します現時点では発信者

何が問題なのですか。なぜ私はアレイをリリースできないのですか?それはクラスのメンバーであるからだけですか?もしそうなら、どうすれば配列の内容を新しいものに置き換えることができますか?

答えて

1

うまくいけません。もしそれをリリースできない場合は、常にそれをnilに設定して内容全体を削除し、新しいデータロードで配列を再割り当てすることができます。 別の解決策は、配列の= nil + release を作るProfileクラスのメソッドを作ることです。そうすれば、そのオブジェクトを使用する他のクラスから直接呼び出すことができます。

+0

あなたの別の解決策のようです。どうもありがとうございました –

関連する問題