1

在我的NSFetchedResultsController中,我想要一個NSPredicate,它只能獲取具有特定關係的對象。NSPredicate中的相關NSManagedObject

例如:

我有三個子類NSManagedObject S:FlightAircraftBattery

Flight有一個Aircraft。每個Flight可以有幾個Battery對象。

所以,當我獲取了Flight的對象,這是我已經與謂詞嘗試:[NSPredicate predicateWithFormat:[NSString stringWithFormat:@"aircraft = %@", aircraftObj]];

所以我只是想獲取這些都與特定Aircraft對象Flight對象。這不起作用,但我該怎麼做?

其次,在此基礎上,Flight已有batteries這是NSSet的Battery對象。所以如果我想像飛機那樣做,但是過濾Battery物體,我會如何做到這一點?

謝謝,讓我知道如果我需要進一步解釋。

回答

2

你有一個「雙格式化」你的謂詞的問題。

你可以簡單地寫爲:

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

同樣會去你的Battery對象(但與適當Flight

+0

不知道我理解。我正在抓取'Flight'對象。我手邊還有一架飛機。所以在獲取時,我只想獲取'Flight'對象,其中'aircraft'關係等於我擁有的'Aircraft'對象。我按照你的建議嘗試了,但是在創建'NSPredicate'時崩潰,並且在日誌中說'無法解析格式串'。 –

+0

解決了它!我正在使用一個NSString,然後我將它放入謂詞中。通過將它直接放入我的謂詞中,它就可以解決問題。但是,如果我想追加更多的謂詞呢?這就是爲什麼我將字符串擴展到最終結果,然後設置謂詞。雖然謝謝! –

+0

閱讀[THIS](https://developer.apple.com/library/mac/documentation/cocoa/reference/foundation/classes/NSCompoundPredicate_Class/Reference/Reference.html)關於連接謂詞 –