CoreDataエンティティ名Personwithpredicateから値を取得し、辞書内の新しいデータと比較しようとしていますが、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を返し、比較しない場合は使用しません。私のエンティティには、PersonエンティティとPhotoエンティティがあります。Personには、userName属性とuserID属性があり、Photoエンティティとの1対多の関係もあります。
述語に問題があると思いますが、わかりません。