Core data NSPredicate中的相关NSManagedObject

Core data NSPredicate中的相关NSManagedObject,core-data,nspredicate,nsfetchedresultscontroller,nsmanagedobject,Core Data,Nspredicate,Nsfetchedresultscontroller,Nsmanagedobject,在我的NSFetchedResultsController中,我希望有一个NSPredicate,它只获取具有特定关系的对象 例如: 我有三个子类NSManagedObjects:飞行,飞机,电池 每个航班都有一架飞机。每个航班可以有几个电池对象 因此,当我获取Flight对象时,我尝试使用谓词:[NSPredicate predicateWithFormat:[NSString stringWithFormat:@“aircraft=%@”,aircraftObj]] 因此,我只想获取与特定飞

在我的
NSFetchedResultsController
中,我希望有一个
NSPredicate
,它只获取具有特定关系的对象

例如:

我有三个子类
NSManagedObject
s:
飞行
飞机
电池

每个
航班
都有一架
飞机
。每个
航班
可以有几个
电池
对象

因此,当我获取
Flight
对象时,我尝试使用谓词:
[NSPredicate predicateWithFormat:[NSString stringWithFormat:@“aircraft=%@”,aircraftObj]]

因此,我只想获取与特定
飞机
对象相关的
航班
对象。这不管用,但我该怎么做

其次,在此基础上,
航班
拥有
电池
,这是一组
电池
对象。因此,如果我想做与飞机相同的事情,但要过滤
电池
对象,我该怎么做

谢谢,如果需要进一步解释,请告诉我。

您的谓词存在“双重格式”问题。

你可以简单地写:

[NSPredicate predicateWithFormat:@"aircraft = %@", aircraftObj]

你的
电池
对象也是如此(但使用正确的
航班

我不太清楚。我正在获取
Flight
对象。我手边还有一个
飞机
物体。因此,在获取过程中,我只想获取
航班
对象,其中
飞机
关系等于我拥有的
飞机
对象。我已经按照您的建议进行了尝试,但在创建
NSPredicate
时崩溃,并说
无法解析日志中的格式字符串
。解决了!我使用了一个NSString,然后将其放入谓词中。通过将其直接放入谓词中,它回避了问题。但是,如果我想在谓词中附加更多内容,该怎么办?这就是为什么我将字符串增长到最终结果,然后设置谓词。谢谢你!阅读连接谓词