使用相关数据设置detailTextLabel

时间:2014-03-16 12:10:21

标签: ios objective-c

我确信答案很简单,但我看不出我做错了什么。

我有两个一对多的相关表格:

Entities       Users    <-->   Kind  
attributes     userName        kindName  

Relationship   hasKinds        forUser

在我UITableViewCell我已将TextLabel设置为user,我尝试将detailTextLabel设置为相关类型,但它不会让我。

以下是代码:

 - (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath{
    Users *users = [self.fetchedResultsController objectAtIndexPath:indexPath];
    cell.textLabel.text = users.userName;
    cell.detailTextLabel.text = [users.hasKinds.kindName];
}

错误是:

  

在'NSSet *'

类型的对象上找不到属性'kindName'

2 个答案:

答案 0 :(得分:0)

似乎users.hasKinds不是预期类型Kind,而是NSSet *类型。
检查users.hasKinds属性/方法。

答案 1 :(得分:0)

用户和善良之间存在一对多或多对多的关系。它的接缝就像用户可以拥有多种类型。因此,如果您要求使用各种类型的用户,您将获得所有类型的集合。

您现在可以打印包含所有类型用户的字符串,如下所示:

 - (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath{
    Users *users = [self.fetchedResultsController objectAtIndexPath:indexPath];
    cell.textLabel.text = users.userName;

    NSMutableString *kindsString = [NSMutableString string];
    for (Kind *kind in user.hasKinds) {
        [kindsString appendString:kind.kindName];
    }
    cell.detailTextLabel.text = kindsString;
}