我在我的應用程序中使用了搜索控制器。用戶鍵入一個單詞,然後返回一個Core Data實體列表,其中每個實體都有一個包含該單詞的標題。這很容易。核心數據在不同的目錄中搜索
但我還想在此列表的底部返回其他實體,這些實體的搜索詞作爲它們的標題,並與我首先搜索的詞有多對多的關係。
因此,如果我在標題中找不到搜索詞,我想搜索與第一個實體類型相關的實體的標題。
使用單個NSPredicate可能嗎?
這裏是我的核心數據模型
我在我的應用程序中使用了搜索控制器。用戶鍵入一個單詞,然後返回一個Core Data實體列表,其中每個實體都有一個包含該單詞的標題。這很容易。核心數據在不同的目錄中搜索
但我還想在此列表的底部返回其他實體,這些實體的搜索詞作爲它們的標題,並與我首先搜索的詞有多對多的關係。
因此,如果我在標題中找不到搜索詞,我想搜索與第一個實體類型相關的實體的標題。
使用單個NSPredicate可能嗎?
這裏是我的核心數據模型
有兩類實體:Term
和Part
。你想構建這樣一個列表:
Term
實體title
==標題Part
實體title
==標題如果這是正確的,你贏了無法用一個NSFetchRequest
來獲取列表的兩個部分。最簡單的方法是執行兩個單獨的提取,並將第二個列表追加到第一個列表。如果您爲數據添加更多結構,您可以通過一個奇特的請求來完成此操作,但據我所知,這並不值得。如果你有大量的數據,你當然應該考慮巧妙的方法來索引它。
作爲一邊,你應該永遠不要使用單向關係。它們對性能不利,並且Xcode應該通過對它們的警告尖叫你。不要忽視警告。
對於搜索,我會按照@Felixyz的說法,兩次提取併合並結果。如果數據變得龐大,那麼你會希望將「搜索標題」拆分爲一個具有關係的單獨對象,並且僅僅根據搜索對象進行搜索。
雖然修復了你的關係。即使你從來沒有使用它們,核心數據將。
我修好了)謝謝) –