0
我在尋求幫助瞭解NSPredicates以及如何查詢CoreData。這裏是我有什麼:如何針對CoreData中的多個關係執行復合查詢
我有兩個實體:1.捕獲,表示一個「捕獲」的一些數據,它有許多關係2.身份標籤。
我期待從一組特定的「捕捉」中獲得一組「身份」標籤。即我想知道名稱'X'的所有唯一身份標識,這些標識也用Int'y'的標識標記。
在SWIFT我會對此建模,如:
let captures: [Capture]
let identities = captures.flatmap({ $0.identities }).filter({ $0.id == "y" })
let uniqueIdentitiesOfParticularType: Set<Identity> = Set(identities.flatMap({ $0.name })
任何幫助嗎?
感謝羅!這讓我走上了正軌。我猜想我可能會有更好的方法告訴CoreData一次性獲取這些對象,因此我試圖弄清楚如何讓NSPredicates完成所有工作。 – Bren
只要記住Core Data不是數據庫。它的目的不是任意記錄查詢。它是一個對象持久性引擎。它的目的是維護一個一致的對象圖。 「獲取」僅僅是一個實現細節,因爲數據集可能並不都適合內存。核心數據的主要功能是幫助您導航複雜的關係系統,而不是「查詢行」。如果你有許多獨立的記錄沒有很多固定的關係,我經常會發現一個數據庫是更好的工具。 –
我明白了......對於我正在處理的這個小項目,我有一個本地存儲在JSON中的數據集。 CoreData提供了一種很好的方式來將這些數據序列化到適當的對象中,保持它們彼此之間的關係,並與它們進行交互。我想,在探索這個解決方案時,我可能會試圖過度設計思考,有一種更好的方法,然後查看獲取所返回的所有對象。 – Bren