0

私のアプリケーションでは、for ループを使用して NSMutableArray にデータを追加しています。すべてが正しく追加されますが、反復回数が増加すると、特定のインデックス値でデータがゼロになるという問題があります。私のコードは次のようになります。

  NSArray * sortedArray =[FilterProjectsArray sortedArrayUsingDescriptors:descriptors];
  NSMutableArray *Array1=[[NSMutableArray alloc]initWithArray:sortedArray];
 [appdelegate.filtersArray addObject:[Array1 mutableCopy]] ;

 for (int i=0; i<[appdelegate.filtersArray count]; i++)
 {
       NSLog(@"object in filtersarray count is %d",[[appdelegate.filtersArray objectAtIndex:i]count]);

 }

このために、次のようにコンソールに出力を取得しています。

object in filtersarray count is 9

object in filtersarray count is 9
object in filtersarray count is 2


object in filtersarray count is 0
object in filtersarray count is 2
object in filtersarray count is 9


object in filtersarray count is 0
object in filtersarray count is 0
object in filtersarray count is 9
object in filtersarray count is 2


object in filtersarray count is 0
object in filtersarray count is 0
object in filtersarray count is 0
object in filtersarray count is 2
object in filtersarray count is 3


object in filtersarray count is 0
object in filtersarray count is 0
object in filtersarray count is 0
object in filtersarray count is 0
object in filtersarray count is 3

それが私が得ている出力です。なぜこのように動作するのかわかりません。誰かがこれについて何か考えを持っているなら、私に知らせてください。

4

2 に答える 2

0

addObject:Array1 を実行するだけです。

[Array 1 release];

ARC を使用していない場合。

于 2012-09-21T08:52:29.847 に答える
0

配列をオブジェクトとして追加するときに、可変コピーを行う必要はありません

[appdelegate.filtersArray addObject:Array1] ;
于 2012-09-21T08:52:54.620 に答える