尝试分离包含托管对象上下文的数组时出错

时间:2014-05-31 17:10:48

标签: objective-c arrays

有人可以告诉我为什么我会收到此错误以及为什么此代码无效?

Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '-[__NSArrayI componentsSeparatedByString:]: unrecognized 
selector sent to instance 0x109494750'

这是有问题的代码:

NSArray *array = [self.managedObjectContext executeFetchRequest:request error:nil];
NSString *dateString = [array valueForKey:@"dateString"];
NSArray *datesArray = [dateString componentsSeparatedByString:@","];//line with problems

2 个答案:

答案 0 :(得分:0)

当您在数组上致电valueForKey:时,结果将是NSArray,其中包含在其每个元素上调用valueForKey:的结果。

因此dateString实际上不是字符串,而是NSArray的实例,它不响应componentsSeparatedByString:。在调用

上的componentsSeparatedByString:之前,您需要索引数组以获取所需的日期

答案 1 :(得分:0)

表明dateString不是字符串。在数组上调用-valueForKey:时,它会返回一个数组。每the docs

  

返回一个数组,其中包含在每个数组对象上使用key调用valueForKey:的结果。

所以你在数组上调用字符串方法。通过致电-valueForKey:,您不清楚自己要完成的工作。也许你的意思是-objectAtIndex: