0
A
回答
1
嗯,我不知道我理解你的问题,但我会尝试在简单的领域模型的上下文中回答。
比方说,你有一个Person
类和一个Computer
类,都延伸NSManagedObject
。 Person
通过单向关系链接到Computer
,名为computers
的NSSet。
这将允许你在代码中说:
Person *person = // ... (loaded from database)
NSSet *computers = person.computers;
for (Computer *computer : computers) {
// do something fun
}
然而,因为它是一个单向的关系,你会不能够做到这一点:
Computer *computer = // loaded from DB
Person *person = computer.person; // This line won't work
因此,因为它不起作用 - 没有向后关系 - 获取相关Person类的唯一方法是构建一个Fetch请求来查询数据库并查找将Computer作为成员的Person实例。
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSPredicate *predicate = // define your NSPredicate to find the Person object here
[fetchRequest setPredicate:predicate];
NSError *error = nil;
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];
[fetchRequest release];
一般来说,这是烦人。因此,如果可能的话,双向定义您的关系(例如反向)通常是一个好主意,这将使您能够做到:
Person *person = computer.person;
相关问题
- 1. 核心数据中的单向关系
- 2. 核心数据中的“关系的基数”是什么意思?
- 3. 核心数据,没有反向关系
- 4. 核心数据反向关系ios
- 5. 核心数据无关系
- 6. iOS核心数据 - 关系
- 7. 核心数据和关系
- 8. 核心数据关系
- 9. iPhone核心数据关系
- 10. 核心数据 - 关系
- 11. NSPredicateEditor与核心数据关系
- 12. 核心数据NSPredicate与多个关系
- 13. 核心数据与多对多关系
- 14. 核心数据与对多关系/
- 15. 核心数据关系获取
- 16. 核心数据获取请求关系
- 17. 核心数据:获取关系属性
- 18. 核心数据与关系和属性关系
- 19. 核心数据中的三元关系
- 20. 核心数据中的关系同步
- 21. 核心数据中的许多关系
- 22. 关系中的核心数据总和
- 23. xcode swift 4核心实体之间的数据关系?
- 24. 核心数据移动或关系之间的链接实体
- 25. 对象之间的核心数据关系
- 26. 编辑核心数据关系数据
- 27. 核心数据:与多个实体的反向关系?
- 28. iPhone - 核心数据NSSet中关系
- 29. C++和Ruby之间的关系和依赖关系是什么?
- 30. 核心数据(iPhone) - 限制跨关系的提取结果
这样做很有意义。啧啧。 – 2011-04-14 07:14:55
我仍然缺少一些东西。说我仍然想要有人来电脑单向关系。说出这样做的方式,而不会让猜测错误是将计算机定义为关系而不是定义关系。因此,没有人拥有电脑。我们没有人与电脑的关系。我们已经把人与计算机之间的关系搞定了。所以你的谓词不起作用。 – 2011-04-14 07:17:05
提取关系是计算的 - 它们在物理上并不代表数据库中保存的数据。它们对于排序结果和/或仅返回一个子集等事物很有用 - 例如,您可以从Person - > Computer获取一个名为'appleComputers'的获取关系,该关系只返回这个人拥有的计算机和'where make =“Apple”'。 – asinesio 2011-04-14 17:31:58