0

からオブジェクトを削除しようとしていますNSMutableArray。以下は、配列への追加方法です。

sectionInfo = [self.collectionView indexPathsForSelectedItems];

削除しようとした方法

[sectionInfo removeAllObjects];

私が得たエラーは、認識されないセレクターがインスタンス 0x169cfb70 に送信されたことです。 配列のお尻にアイテムを追加しなかったためだと思いますaddObject:が、それは私の要件ではありません。では、これをどう管理するか。

4

3 に答える 3

3

問題は、 を-[UICollectionView indexPathsForSelectedItems]返さないことNSMutableArrayです。NSMutableArray変更する前に、次のように変換します。

sectionInfo = [NSMutableArray arrayWithArray: [self.collectionView indexPathsForSelectedItems]];
于 2013-05-27T05:42:56.553 に答える
1

は、宣言方法に関係なくindexPathsForSelectedItems、不変のを返します。理論的には、次のことができます。NSArraysectionInfo

sectionInfo = [[self.collectionView indexPathsForSelectedItems] mutableCopy];

または、単に をリセットしようとしている場合はsectionInfo、 の宣言をそのままにしておくことができますsectionInfoが、 ではなくremoveAllObjects、次のように単純に言うことができます。

sectionInfo = nil;

または、新しい配列を作成します。

sectionInfo = [NSMutableArray array];

sectionInfoオブジェクトを単にリセットするのではなく、からオブジェクトを削除しようとしている理由に帰着すると思います。

于 2013-05-27T05:48:18.690 に答える
0

の変更可能なコピーを作成しindexPathsForSelectedItemsます。indexPathsForSelectedItems返品NSArray不可のためNSMutableArrayNSArrayメソッドがありませんremoveAllObjects

sectionInfo = [[self.collectionView indexPathsForSelectedItems]mutableCopy];
于 2013-05-27T05:47:22.790 に答える