核心数据中的获取与单向关系之间是什么关系?

| 为什么“提取”表示单向关系 取回和单向之间有什么关系?     
已邀请:
好吧,我不确定我是否理解您的问题,但是我将在简单的域模型的背景下尝试回答。 假设您有一个
Person
类和一个
Computer
类,都扩展了
NSManagedObject
Person
通过单向关系(名为Set5ѭ的NSSet)链接到
Computer
。 这可以让您在代码中说:
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 Request以查询数据库并查找具有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;
    

要回复问题请先登录注册