' - [__ NSArrayM _fastCStringContents:]:发送到实例的无法识别的选择器

时间:2016-06-10 07:47:57

标签: ios objective-c uitableview nsstring nsarray

当我尝试将对象添加到我的可变数组时,我一直得到一个无法识别的选择器,当我在tableview中选择一个单元格时,我正在尝试添加和删除项目到一个可变数组,这是我的代码:

@interface SomeViewController
  @property (nonatomic, strong) NSMutableArray *selectedItems;
@end

查看确实已加载:

-(void)viewDidLoad {

    [super viewDidLoad];

    self.selectedItems = [[NSMutableArray alloc] init];
}

选择单元格:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    MyCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];

    [self.selectedItems addObject:[NSString stringWithFormat:@"%@", cell.contactID]];

MyCell文件上的联系人Id属性是:

@property (strong, nonatomic) NSString *contactID;

我一直收到这个错误:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM _fastCStringContents:]: unrecognized selector sent to instance 0x7fc3dd1091b0'

3 个答案:

答案 0 :(得分:2)

在某个地方你有一个你认为是字符串的对象,而实际上它是一个可变数组 - 这就是错误信息所说的。在异常上设置一个断点,它应该告诉你它到底发生了什么,然后找到你认为是字符串的数组。

答案 1 :(得分:0)

尝试在普通的UITableView中实现它。如果你没有遇到任何问题,那么你的问题就在于你的MyCell。同时检查mutable或copy数组。尝试NSLog cell.contactID

答案 2 :(得分:0)

可能是您将数组直接传递给NSLog之类的NSLog(array)而不是NSLog(@"%@", array)