NSMutableArray removeObjectAtIndex错误

时间:2016-02-18 01:03:03

标签: ios objective-c xcode uitableview nsmutablearray

这是我不断得到的错误:

由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [__ NSArrayI removeObjectAtIndex:]:发送到实例的无法识别的选择器

我理解错误是说我在NSArray上调用NSMutableArray功能但在我的代码中我只有NSMutableArray功能......

查看Controller.h:

@property (copy, nonatomic) NSMutableArray *exampleMessages;
//added NSMutableArray property named exampleMessages

查看Controller.m:

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

self.exampleMessages = [[NSMutableArray alloc]initWithObjects:@"Example Message..", @"Example Message..",@"Example Message..",@"Example Message..",@"Example Message..", @"Example Message..",@"Example Message..",@"Example Message..", nil];

我是否错误地创建了NSMutable数组? 请帮忙!

1 个答案:

答案 0 :(得分:1)

NSMutableArray无法复制。

更改

@property (copy, nonatomic) NSMutableArray *exampleMessages;

@property (nonatomic) NSMutableArray *exampleMessages;
到目前为止,我至少已经三次对自己这样做了。这是一个真正的痛苦。很抱歉通知您属性没有mutableCopy属性,我也查了一下。

我的最佳答案是覆盖-setExampleMessages:

- (void)setExampleMessages:(NSMutableArray *)exampleMessages {
    _exampleMessages = [exampleMessages mutableCopy];
}