我正在尝试获取核心数据库的记录,但这给了我以下错误。

错误-[__ 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];

最佳答案

我假设您的数组a不包含数字,但包含字典,例如:

NSArray *a = @[
                  @{@"serverId" : @"2", ...},
                  @{@"serverId" : @"4", ...}
              ];


因为那样会导致您收到错误消息。

您必须创建一个仅包含“ serverId”数字的数组,并在谓词中使用该数组:

NSArray *serverIds = [a valueForKey:@"serverId"];
NSPredicate *pred = [NSPredicate predicateWithFormat:@"NOT (serverId IN %@)", serverIds];

关于ios - -[__ NSDictionaryM intValue]:无法识别的选择器已发送到实例0x13f26a60,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15204360/

10-14 20:40