获取核心数据中的关系对象

时间:2013-05-27 02:19:55

标签: iphone ios core-data stackmob iphonecoredatarecipes

我是coredata的新手,这是我第一次使用,所以请耐心等待我的到期。 我有2个名为userinfo和usergroups的Entites,它们都在一对多关系中相关,现在用户组(关系名称)字段将在userinfo中创建。而Userinfo也与Usercontacts有很多关系

Userinfo包含dateofbirth; email; firstname; lastname; password;称呼; userinfoId;用户名(用户联系号码); zipcode; 用户组; usercontacts;

Usercontacts包含contactdescription; name; phone(conatct list of users); usercontacts_id; userinfo;

用户组包含groupname; mobile_contacts; mobile_number; usergroups_id; userinfo_group;

我能够获取特定用户名的usergroups对象(在userinfo实体中是唯一的),对于特定的mobile_contacts(在usergoups实体中),我可以从Userconatcts Entity获取相关名称。

我是这样尝试的

   NSString *usermobileNumber = [[NSUserDefaults standardUserDefaults] valueForKey:@"UserNumber"];
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Userinfo" inManagedObjectContext:context];
    [fetchRequest setEntity:entity];
    NSPredicate *datapredicate = [NSPredicate predicateWithFormat:@"username == %@",usermobileNumber];
    [fetchRequest setPredicate:datapredicate];

[context executeFetchRequest:fetchRequest onSuccess:^(NSArray *results){
    NSLog(@"results %@",[[results valueForKey:@"usergroups"] objectAtIndex:0]);

    for (NSString *order in results) {
        for (Usergroups *unit in [order usergroups]) {
            NSLog(@"%@", unit);
        }
    }
    [fetchRequest release];
}onFailure:^(NSError *error){
    NSLog(@"error %@",error);
}];

任何建议或帮助都会让我开始工作 在此先感谢

1 个答案:

答案 0 :(得分:0)

它应该像迭代关系一样简单:

for (Userconatcts *contact in unit.mobile_contacts) {
    NSString *name = contact.name;
}