【发布时间】:2014-03-11 15:56:06
【问题描述】:
我有一个这样的模型:
如何使“文件”实体可以被 Entity1 或 Entity2(或 Items)引用
基本上,我有许多带有 id 的“文件”。如果对“文件”进行了更改(例如更改了名称),那么当任何实体引用该文件时,它应该具有更新的信息......而不必在每个实体中进行更新。
有没有办法通过编辑器做到这一点?还是我必须编写代码来首先获取我正在寻找的文件 id,然后在获得文件 id 后,使用我刚刚获得的 id 对“文件”实体进行单独的请求?
在 sql 中,我可以从任何表进行左连接。如果可以在谓词中执行,那也可以,只是不确定如何。
编辑:
所以我更新了我的模型,现在它看起来像这样:
我为“文件”添加了数据,然后为 Entity1 和 Entity2 添加了数据
我有用于显示文件的代码,然后是用于显示实体的代码。 这是我正在做的事情的 sn-p:
NSEntityDescription *entityDescription = [NSEntityDescription
entityForName:@"Entity1" inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDescription];
NSError *error;
NSArray *entityArray = [context executeFetchRequest:request error:&error];
[entityArray enumerateObjectsUsingBlock:^(Entity1 *entity1, NSUInteger idx, BOOL *stop) {
NSLog(@"entity1: %@", entity1.name);
}];
我现在如何从文件中获取 Entity1 的“名称”?让我们假设名称字段是一个匹配字段。我需要在代码中添加什么来提取“文件”?这是假设在“Entity1”当然存在之前“文件”就在那里。
我目前正在运行另一种类似于“getFileByName:(NSString *)name”的方法,并使用谓词执行单独的请求。这行得通,但我认为有更好的方法。
【问题讨论】:
-
“以便 Entity1、Entity2 或 Items 可以引用“文件”实体是什么意思?
-
我想如果我与 Entity1 的文件建立关系,那么我将无法从 entity2 访问相同的文件。我会尝试丹的答案,看看它是否有效。感谢您查看此内容。
-
您的编辑完全是另一个问题。考虑将其作为一个重新发布。
标签: ios xcode core-data nspredicate