我在上下文中插入实体 A 时遇到问题。在我插入所有实体 A 之后,我立即在上下文中执行获取请求:
NSEntityDescription* entity = [NSEntityDescription entityForName:@"A" inManagedObjectContext:ctx];
NSFetchRequest* fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity:entity];
NSError* fetchError;
NSArray* results = [ctx executeFetchRequest:fetchRequest error:&fetchError];
上面的代码能够获取所有这些,我可以在 NSLog 中看到它们...
在同一上下文之后,我尝试获取年龄 = 5 的所有实体 A,如下所示: (我将“年龄”分配给属性,将 NSString @"5"分配给值)
NSEntityDescription* entity = [NSEntityDescription entityForName:@"A" inManagedObjectContext:ctx];
NSFetchRequest* fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity:entity];
NSPredicate *filter = [NSPredicate predicateWithFormat:@"%K == %@",attr,value];
[fetchRequest setPredicate:filter];
NSError* fetchError;
NSArray* results = [ctx executeFetchRequest:fetchRequest error:&fetchError];
问题在于,即使 NSLog 显示年龄为 5 的实体 A,最后的获取请求始终返回 null!什么都没有。
有什么建议吗?为什么获取所有实体会显示年龄为 5 岁的实体,而仅过滤年龄为 5 岁的实体在同一上下文之后不起作用?
谢谢
最佳答案
尝试将 age 设置为初始化为 5 的 NSNumber 实例,而不是 NSString @"5"。
关于ios - NSFetchRequest 无法获取上下文中存在的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10157118/