CoreData 和访问关系的问题:请求非结构或联合中的成员
Posted
技术标签:
【中文标题】CoreData 和访问关系的问题:请求非结构或联合中的成员【英文标题】:Problem with CoreData and accessing relationships : request for member in something not a structure or union 【发布时间】:2010-06-04 11:56:00 【问题描述】:我有一个关于我想与 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。
知道有什么问题吗?
谢谢
【问题讨论】:
【参考方案1】:我也遇到了同样的问题,解决方法很简单,只要你一听到就会用头撞墙;)
尝试 [prefInfo name] 而不是 prefInfo.name。
【讨论】:
完全正确,点语法不适用于通用指针。它的许多失败之一。以上是关于CoreData 和访问关系的问题:请求非结构或联合中的成员的主要内容,如果未能解决你的问题,请参考以下文章
目标 C:在非结构或联合的情况下请求成员 XXX。 (核心数据)