1

我有一个关于我想与 CoreData 一起使用的相当高级的 DataModel 的问题。

在详细介绍我到目前为止所做的事情之前,我将描述我想要做的事情。

我有一份入住一个房间并有偏好的酒店客人名单。一旦准备就绪,用户应该选择一个客人并查看数据,还应该能够添加新客人,选择房间(也由应用程序维护)并选择他们的偏好(用户还可以添加新的偏好)。客人可以没有或有很多偏好。

这就是我到目前为止所拥有的。我创建了 3 个实体: - 带有房间号的房间 - 带有名称的首选项 - 带有名称的 GuestInfo -> 带有这些关系房间(目标房间)和首选项(具有“对多关系”的目标首选项)当您创建托管时,首选项是一个 NSSet对象类。

到目前为止,一切都很好。现在我有一个显示所有来宾的 UITableViewController,当我单击一个来宾时,我有另一个 UITableViewController 显示详细信息(DetailsViewController)。单击首选项它将转到另一个 UITableViewController,我可以在其中选择首选项。我遇到的问题是当我想实际访问 DetailsViewController 中的首选项时。这是我的 cellForRowAtIndexPath:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) 
    {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:CellIdentifier] autorelease];
        cell.editingAccessoryType = UITableViewCellAccessoryDisclosureIndicator;
    }

switch (indexPath.row) 
{
  case 2:
    cell.textLabel.text = @"Preferences";

    NSEnumerator *e = [info.prefs objectEnumerator];
    id collectionMemberObject;

    while ( (collectionMemberObject = [e nextObject]) ) 
    {

    Preferences *prefInfo = collectionMemberObject;         
    DebugLog(@"===> %@", prefInfo.name);

    }

    break;
}

info 是我传递给 DetailsViewController 的 GuestInfo。

现在有了这个,我确实得到“请求不是结构或联合的成员”访问 prefInfo.name。

知道有什么问题吗?

谢谢

4

1 回答 1

3

我有同样的问题,解决方法很简单,只要你听到它就会用头撞墙;)

尝试 [prefInfo name] 而不是 prefInfo.name。

于 2010-06-04T15:11:43.500 回答