由于某些原因,我在运行应用程序时始终收到此错误:

[__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,但都不是。

最佳答案

可变问题。

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


此行将导致trackName变为不可变数组。更改为此:

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


现在,trackName是可变的,因此您可以调用。

[trackName removeAllObjects];

08-25 21:39