ios - NSFetchRequest 无法获取上下文中存在的实体

标签 ios core-data nspredicate nsfetchrequest

我在上下文中插入实体 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/

相关文章:

iphone - 获取常量值 : unrecognized selector sent to instance error

ios - 如何使用谓词从一个 NSArray 中选择包含在另一个 NSArray 中的对象

ios - 错误 "Thread 1:EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)"是什么意思?

iphone - 使用内部对象实例变量的值对自定义对象数组进行排序

ios - 从 NSSet 创建 NSManagedObject 时不规则崩溃

ios - 核心数据NSValidation错误1620

iphone - NSPredicate 中自己的函数(NSString 的 round)

ios - 快速的本地通知声音不起作用

ios - 在同一个应用程序上使用两个 Facebook 应用程序 ID 进行测试

ios - 如何强制在 WebView 中单击的任何链接在 Safari 中打开?