我正在尝试使用谓词从 CoreData 实体名称 Person 中获取值,然后与字典中的新数据进行比较。但它每次返回 0 。它会创建大约 5 个同名的人。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"userName == %@",[flickr usernameForUserID:@"owner"]];
peopleList = (NSMutableArray *)[flickr fetchManagedObjectsForEntity:@"Person" withPredicate:predicate];
NSEnumerator *enumerator = [peopleList objectEnumerator];
Person *person;
BOOL exists = FALSE;
while (person = [enumerator nextObject]) {
NSLog(@" Person is: %@ ", person.userName);
NSLog(@"Person ID IS %@",person.userID);
NSLog(@"Dict ID is %@",[dict objectForKey:@"owner"]);
if([person.userID isEqualToString:[dict objectForKey:@"owner"]]) {
exists = TRUE;
NSLog(@"-- Person Exists : %@--", person.userName);
[newPhoto setPerson:person];
}
}
这里 peopleList 返回 0,枚举器也返回 0,它不使用 if 和不比较。在我的实体中,我有 Person 和 Photo 实体。在 Person 中,我有 userName 和 userID 属性以及与 Photo 实体的一对多关系。
我认为谓词有问题,但我无法弄清楚。