无法删除NSMutableArray中的所有对象

sme*_*son 0 objective-c nsmutablearray nsarray ios

出于某种原因,我在运行应用程序时遇到此错误:

[__NSArrayI removeAllObjects]: unrecognized selector sent to instance

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

@implementation ChooseViewController
{
    NSMutableArray *trackName;
}
Run Code Online (Sandbox Code Playgroud)

并填充它像这样:

trackName = [JSON valueForKeyPath:@"results.trackName"];
Run Code Online (Sandbox Code Playgroud)

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

[trackName removeAllObjects];
Run Code Online (Sandbox Code Playgroud)

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

return [trackName count];

你觉得有什么不对吗?我相信问题在于它认为它是一个NSArray,但它们都不是.

Ruc*_*hah 8

可变问题.

trackName = [JSON valueForKeyPath:@"results.trackName"];
Run Code Online (Sandbox Code Playgroud)

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

trackName = [[JSON valueForKeyPath:@"results.trackName"] mutableCopy];
Run Code Online (Sandbox Code Playgroud)

现在,trackName是可变的,所以你可以打电话.

[trackName removeAllObjects];
Run Code Online (Sandbox Code Playgroud)