我在 CoreData 中拥有名为 myentity
的实体和名为 myuniqueid
的属性,并且我想运行 SQL 查询,如下所示:
Select * from myentity where myuniqueid == 1000
如何获取与 SQL 查询中匹配的指定行?这样我想过滤 myuniqueid
为 1000
的所有行。
我的代码:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSManagedObjectContext *context = [self managedObjectContext];
if (context == nil) {}
else {
NSEntityDescription *entity = [NSEntityDescription entityForName:@"myentity" inManagedObjectContext:context];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"myuniqueid == 1000"];
[fetchRequest setPredicate:predicate];
[fetchRequest setEntity:entity];
NSArray *items = [context executeFetchRequest:fetchRequest error:nil];
for (int i=0; i<4; i++) {
NSManagedObject *mo = [items objectAtIndex:i]; // assuming that array is not empty
id value = [mo valueForKey:@"myuniqueid"];
NSLog(@"SENDER: %@",value);
}
}
我收到错误:“无法为谓词生成 SQL (myuniqueid == 1000)(RHS 上有问题)”
最佳答案
试试这个谓词:
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"myentity"];
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"myuniqueid == %@", @(1000)];
NSArray *items = [[self managedObjectContext] executeFetchRequest:request error:nil];
关于ios - Core Data iOS 中完全匹配的 NSString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32124700/