Я пытаюсь получить значение из имени сущности 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 .
Я думаю, что проблема в предикате, но я не могу понять это.