iOS - NSPredicate 一对多核心数据

标签 ios core-data one-to-many nspredicate

我有两个实体:Dictionary 和 DictionaryItems

“词典”与“DictionaryItems”实体之间存在称为“术语”的一对多关系

即字典=英语 DictionaryItems = 卷心菜、胡言乱语、绿色、巴士

我有两个表,第一个显示我的 Dictionary 对象的列表,即:

英语 西类牙语 克林贡语

触摸其中一个后,它会推送一个新表,该表应显示该字典中包含的所有项目。

但是我的 NSPredicate 似乎是问题所在,因为第二个表中没有显示任何内容。

我使用了一个 Mac 应用程序来询问 SQL 数据库后端,我可以确认所有条目都在那里,并且关系似乎已正确连接...但是没有返回任何内容,这似乎是 NSPredicate 的错误。

这就是我所拥有的:

NSEntityDescription * entity = [NSEntityDescription entityForName:@"DictionaryItems" inManagedObjectContext:self.managedObjectContext];

NSPredicate * predicate = [NSPredicate predicateWithFormat:@"dictionary == %@", self.myDictionaryManagedObject];

[fetchRequest setPredicate:predicate];

其中“self.myDictionaryObject”是包含从第一个表中选择的“Dictionary”托管对象的属性。该对象有效且正确。

最佳答案

修复方法如下:

NSPredicate * predicate = [NSPredicate predicateWithFormat:@"ANY SELF.dictionary = %@", self.myDictionaryObject];

知道这是谓词!!

关于iOS - NSPredicate 一对多核心数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19492842/

相关文章:

iphone - 核心数据: How do I maintain without retain?

mysql - Jpa一对多使用连接表

mysql - 加入一对多

forms - Grails如何为所有者创建所有者的一对多关系创建表单

iphone - Time Profiler-等待应用启动

objective-c - 检查 NSEntityDescription 键是否存在

ios - 将 Core Data 对象从 DetailViewController 传递到另一个 View Controller

ios - 从特定的 UIViewController 识别 applicationDidBecomeActive

ios - Realm 未正确删除

ios - Hook 系统 (libc) 在链接时在 iOS 上运行