我有一个NSMutableArray,我需要机会它的值,但我有这个错误:
[__ NSArrayI replaceObjectAtIndex:withObject:]:无法识别的选择器发送到实例0x5291db0
这是我的NSMutableArray的声明:
NSMutableArray *selectedOptions = [NSArray arrayWithObjects:[NSNumber numberWithInteger:0], nil];
然后,我用这种方式使用replaceObjectAtIndex方法:
[self.selectedOptions replaceObjectAtIndex:0 withObject:[NSNumber numberWithInteger:1]];
但是我知道,那个错误,我正在使用NSMutableArray 感谢
答案 0 :(得分:9)
您正在创建一个常规的非变异NSArray
。你的代码应该是
NSMutableArray *selectedOptions = [NSMutableArray arrayWithObjects:[NSNumber numberWithInteger:0], nil];
目标C是非常动态的,所以它在编译时没有发现这个错误。
答案 1 :(得分:6)
您需要通过
初始化NSMutableArray
NSMutableArray *selectedOptions = [NSMutableArray alloc] init];
通过NSArray
初始化,您无法再使用repalceObjectAtIndex:withObject:
方法,这就是问题的原因。
使用上面的行初始化NSMutableArray
后,只需使用addObject
方法向其添加对象。