0

我在上下文中插入实体 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 的实体不起作用?

谢谢

4

1 回答 1

3

尝试将年龄设置为初始化为 5 的 NSNumber 实例,而不是 NSString @"5"。

于 2012-04-14T20:48:36.333 回答