【发布时间】:2013-03-04 14:54:38
【问题描述】:
我正在尝试获取核心数据库的记录,但它给了我以下错误。
错误 -[__NSDictionaryM intValue]:无法识别的选择器发送到实例 0x13f26a60
上线
NSArray *results = [moc executeFetchRequest:request error:&error];
这里是获取请求的完整代码。
NSManagedObjectContext *moc = [delegate managedObjectContext];
NSPredicate *predicate =[NSPredicate predicateWithFormat:@"NOT (serverId IN %@)", a];
[request setEntity:[NSEntityDescription entityForName:@"Categories" inManagedObjectContext:moc]];
[request setPredicate:predicate];
NSError *error = nil;
id results = [moc executeFetchRequest:request error:&error];
NSLog(@"results %@",results);
// error handling code
[request release];
【问题讨论】:
-
我在您的代码中的任何地方都没有看到对
intValue的调用。 -
在运行时,有时对象会被转换为其他类型,让您猜测。这也发生在这里。
-
如果
serverId是int值,那么你可能需要将NOT (serverId IN %@)改为NOT (serverId IN %d) -
a是 NSArray 吗?它包含什么? -
serverId 是整数,当我更改为 NOT (serverId IN %d) 然后它给出以下错误 -[__NSCFNumber countByEnumeratingWithState:objects:count:]: unrecognized selector sent to instance 0xba794c0
标签: ios objective-c core-data