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保留声明,但您可以简单地说:sectionInforemoveAllObjects

sectionInfo = nil;

或者创建一个新数组:

sectionInfo = [NSMutableArray array];

我想这归结为为什么您要尝试从中删除对象sectionInfo,而不仅仅是重置它。

于 2013-05-27T05:48:18.690 回答
0

制作indexPathsForSelectedItems. 因为indexPathsForSelectedItems返回NSArrayNSMutableArrayNSArray没有removeAllObjects方法。

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