作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
假设我有两个对象:文章 和类别,两者之间存在多对多关系。为了这个示例,所有相关类别都已添加到数据存储中。在遍历包含文章编辑的数据时,需要保存类别关系信息。
我计划在 Article
类中使用 -setValue
方法来设置这样的关系:
- (void)setValue:(id)value forUndefinedKey:(NSString *)key {
if([key isEqualToString:@"categories"]){
NSLog(@"trying to set categories...");
}
}
问题是 value
不是 Category
,它只是一个包含类别标题的字符串(或字符串数组)。我当然可以在这个方法中为每个类别进行查找并分配它,但是在一次处理一大堆文章时这似乎效率低下。另一种选择是填充所有可能类别的数组并进行过滤,但我的问题是该数组存储在哪里?它应该是 Article
上的类方法吗?有没有办法将附加数据传递给 -setValue
方法?有没有其他更好的选择来设置我没有想到的关系?
感谢您的帮助。
最佳答案
为什么要实现 setValue:forKey:?您应该在这两个对象之间建立多对多关系并直接处理该关系。在这里看来,您正在以艰难的方式做到这一点。
这段代码的最终目标是什么?
如果我没理解错的话,你有一个 JSON 数据 block ,你想把它变成一个对象图,它与那个对象图匹配正确吗?如果是这样,请查看我在另一个答案中编写的代码:
JSON and Core Data on the iPhone
在那个答案中,我展示了如何递归地构造一个 NSManagedObject 图和从一个 JSON 结构解构它。这比您现在走的路要容易得多。
关于iphone - 使用 setValue 且数据已存在时如何在 Core Data 中正确设置关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3003092/
我是一名优秀的程序员,十分优秀!