4

我有一个 NSMutableArray,我需要尝试它的值,但是我有这个错误:
[__NSArrayI replaceObjectAtIndex:withObject:]: unrecognized selector sent to instance 0x5291db0
这是我的 NSMutableArray 的声明:

NSMutableArray *selectedOptions = [NSArray arrayWithObjects:[NSNumber numberWithInteger:0], nil]; 

然后,我使用 replaceObjectAtIndex 方法,这样:

[self.selectedOptions replaceObjectAtIndex:0 withObject:[NSNumber numberWithInteger:1]];

但我得到了那个错误,我正在使用 NSMutableArray。
谢谢

4

2 回答 2

9

您正在创建一个常规的 non-mutable NSArray。你的代码应该是

NSMutableArray *selectedOptions = [NSMutableArray arrayWithObjects:[NSNumber numberWithInteger:0], nil]; 

Objective C 是非常动态的,所以它不会在编译时发现这个错误。

于 2013-01-17T02:12:14.897 回答
6

你需要NSMutableArray通过做初始化你的

NSMutableArray *selectedOptions = [NSMutableArray alloc] init];

通过使用 初始化它NSArray,您将无法再使用该repalceObjectAtIndex:withObject:方法,这就是您的问题的原因。

用上面的行初始化你之后NSMutableArray,只需使用addObject方法向它添加对象。

于 2013-01-17T02:11:50.453 回答