可変配列からすべてのオブジェクトを削除しようとしているときに、自分がどのような間違いを犯したのか理解できません。私のプロジェクトはARCで、コードスニペットを有効にします
self.arrMonthHas = [[NSMutableArray alloc] init];
if([self.arrMonthHas count ])
[self.arrMonthHas removeAllObjects];
現在の解決策を教えてください。
可変配列からすべてのオブジェクトを削除しようとしているときに、自分がどのような間違いを犯したのか理解できません。私のプロジェクトはARCで、コードスニペットを有効にします
self.arrMonthHas = [[NSMutableArray alloc] init];
if([self.arrMonthHas count ])
[self.arrMonthHas removeAllObjects];
現在の解決策を教えてください。
からすべてのオブジェクトを削除した後、が他の場所で検出されていないself.arrMonthHas
ことを確認してください。self.arrMonthHas
すべてのオブジェクトが削除されますが、メモリは同じものに割り当てられているためです。したがって、配列の要素にアクセスしようとすると、クラッシュします。
PSエラーを投稿してください。
オブジェクトを削除する前に、いくつかのオブジェクトを配列に追加する必要があります。ここで行ったことは、可変配列の新しいインスタンスを初期化し、最初に配列に存在しない内容をフラッシュすることです。次のようなことができます。
self.arrMontHas = [[NSMutableArray alloc] initWithObjects:firstObject,secondObject, thirdObject,nil];
ビジネスロジックに基づいて、配列のすべてのオブジェクトを削除できます
if(someBusinessCondition == YES) { [self.arrMonthHas removeAllObjects]; }
お役に立てれば