-5

可変配列からすべてのオブジェクトを削除しようとしているときに、自分がどのような間違いを犯したのか理解できません。私のプロジェクトはARCで、コードスニペットを有効にします

 self.arrMonthHas =  [[NSMutableArray alloc] init];
 if([self.arrMonthHas count ])
       [self.arrMonthHas removeAllObjects];

現在の解決策を教えてください。

4

2 に答える 2

1

からすべてのオブジェクトを削除した後、が他の場所で検出されていないself.arrMonthHasことを確認してください。self.arrMonthHasすべてのオブジェクトが削除されますが、メモリは同じものに割り当てられているためです。したがって、配列の要素にアクセスしようとすると、クラッシュします。

PSエラーを投稿してください。

于 2013-05-16T09:55:55.530 に答える
0

オブジェクトを削除する前に、いくつかのオブジェクトを配列に追加する必要があります。ここで行ったことは、可変配列の新しいインスタンスを初期化し、最初に配列に存在しない内容をフラッシュすることです。次のようなことができます。

self.arrMontHas = [[NSMutableArray alloc] initWithObjects:firstObject,secondObject, thirdObject,nil];

ビジネスロジックに基づいて、配列のすべてのオブジェクトを削除できます

if(someBusinessCondition == YES)
{
  [self.arrMonthHas removeAllObjects];
}

お役に立てれば

于 2013-05-16T10:30:35.830 に答える