2013-05-27 83 views
0

我是coredata的新手,这是我第一次使用,所以请耐心等待,因为我正在实施。 我有2个名为userinfo和usergroups的Entites,它们都在一对多关系中相关,现在usergroups(关系名)字段将在userinfo中创建。用户信息与用户联系也有很多关系在coredata中获取关系对象

用户信息包含dateofbirth; email; firstname; lastname; password; salutation; userinfoId; username(user contact number); zipcode; usergroups; usercontacts;用户联系人包含联系人描述;姓名;电话(用户的联合列表); usercontacts_id;用户信息;

Usergroups containsgroupname; mobile_contacts; mobile_number; usergroups_id; userinfo_group;

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

我试图这样

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); 
}]; 

任何形式的建议或帮助,会让我感动我的工作 由于提前

回答

0

它应该是为遍历关系那样简单:

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

运行提取请求时,默认情况下,StackMob默认不包含相关对象。如果有人想出解决这个问题的方法,我很感兴趣 – NSTJ