无法删除NSMutableArray中的所有对象

时间:2015-05-01 00:39:08

标签: ios objective-c nsmutablearray nsarray

出于某种原因,我在运行我的应用时遇到了这个错误:

[__NSArrayI removeAllObjects]: unrecognized selector sent to instance

我在.m中设置了NSMutableArray,如下所示:

@implementation ChooseViewController
{
    NSMutableArray *trackName;
}

并像这样填充:

trackName = [JSON valueForKeyPath:@"results.trackName"];

但是当我运行此代码时,它会给我错误:

[trackName removeAllObjects];

其他一切正常,trackName中的数据有效。当我运行这段代码时,它只是搞砸了。提到的唯一其他时间trackName数组是表视图计数:

return [trackName count];

你知道有什么不对吗?我认为问题在于它认为它是NSArray,但它们都不是。

1 个答案:

答案 0 :(得分:8)

可变问题。

trackName = [JSON valueForKeyPath:@"results.trackName"];

这一行将导致不可变数组到trackName。改为:

trackName = [[JSON valueForKeyPath:@"results.trackName"] mutableCopy];

现在,trackName是可变的,因此您可以致电。

[trackName removeAllObjects];