2017-10-28 6 views
0

coreDataでエンティティのフェッチを実行しようとしています。このエンティティは、別のエンティティと1対1の関係にあります。私は、第2のエンティティ内の特定のアイテムとの関係を有する第1のエンティティ内のアイテムのみを取得したい。私は私が間違っている知っている、この述語をしようとしている:sworedを使用してオブジェクトリレーションの述語を持つcoredataをフェッチする

let fetchRequest: NSFetchRequest<ItemA> = NSFetchRequest(entityName: "ItemA") 
fetchRequest.predicate = NSPredicate(format: "itemA.itemB.itemBId == %d", Int(itemB.itemBId)) 
+0

ですからタイプのアイテムを取得したい '' Id'が同じでitemA' 'itemB'のものに、そうですか? – 3stud1ant3

+0

itemA、itemBを添字にして、itemAのitemBの関係を得ることができます。私は、itemBのidがxであるアイテムだけすべてのitemAを検索したいと思います。 itemA.itemB.itemBID = xです。 – alionthego

+0

IdがitemBと等しいitemAタイプのアイテムは欲しくないです。 itemAのitemBのidがitemBId、 – alionthego

答えて

1

現在、あなたは、この述語はなりますので、あなたは、あなたがその名前を与える必要がいけないようitemAの新しいエンティティを使用しているここで、itemA.itemB.itemBIdを使用していますitemAエンティティに適用されているため、itemB.itemBId述語を使用するか、SELF.itemB.itemBId(私はSELFまたは自己についてはわかりませんが、明らかにそれを調べることができます)を使用できます。

だから私はあなたが関係itemBこのようitemBIdのIDを持っているタイプitemAのアイテムを取得することができると思う:

let fetchRequest: NSFetchRequest<ItemA> = NSFetchRequest(entityName: "ItemA") 
fetchRequest.predicate = NSPredicate(format: "itemB.itemBId == %d", Int(itemB.itemBId)) 
+0

のアイテムが大変ありがとうございます。私はそれを台無しにしていた冗長なitemAを持っていた。 – alionthego

+0

@alionthegoあなたは歓迎です、嬉しいことに私は助けることができます:) – 3stud1ant3

関連する問題