【发布时间】:2011-05-02 20:32:46
【问题描述】:
我对 ObjC 有经验,但对 Core Data 比较陌生。到目前为止,这一直很简单,但我有点受不了人际关系,所以我希望有人能指出我正确的方向。
我有两个实体:一个是人员列表,另一个是事件列表。
我在两个实体之间的数据模型中设置了反向关系(称为“人员”),人员方面设置为“多对多”。换句话说,我可以有 5 个人,但有数千个事件;每个事件都与一个人相关联,但一个人可以负责任意数量的事件。
我使用 [NSEntityDescription insertNewObjectForEntityForName...] 添加事件,然后使用 NSFetchedResultsController 检索它们。
问题是在获取特定事件对象时,我还没有成功地检索到有关人员的数据。示例:
Log *logEntry = [_fetchedResultsController objectAtIndexPath:indexPath];
// this works:
NSLog(@"description: %@", logEntry.description);
NSLog(@"happened %i minutes ago", -[logEntry.date timeIntervalSinceNow] / 60);
// this does not (just spits out NULL):
NSLog(@"person responsible: %@", logEntry.people.name);
我错过了什么?我如何获取关系中的人的数据?我有一种感觉,我在首先添加日志条目时遗漏了一个重要链接,或者在检索日志条目时可能是一个必要的谓词。在关系和具体示例方面,Apple 的文档有点少。我可能仍然对老式 SQL 感到困惑,所以我真的可以使用一些帮助。谢谢!
【问题讨论】:
标签: iphone core-data entity relationship nsfetchrequest