我在上下文中插入实体 A 时遇到问题。在我插入所有实体之后,AI 在上下文中执行一个获取请求:
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,如下所示:(我将“age”分配给 attirbute 并将 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,这个最后的 fetch 请求总是返回 null!没有。
有什么建议么?为什么在同一上下文中获取所有这些显示年龄为 5 的实体并仅过滤年龄为 5 的实体不起作用?
谢谢