2010-08-16 38 views
0

使用核心數據。假設我們有Team and Player的模型。iPhone核心數據 - 如何根據父母關係顯示選定的記錄?

假設: - 每個玩家都是單個團隊的成員 - 已在xcdatamodel文件中創建了相關關係。

我有一個TeamListViewController(列出所有團隊),當我選擇一個團隊時,我想查看與該選定團隊在PlayerListViewController上相關的那些球員的列表。

然後我希望能夠選擇一個單獨的球員,看看PlayerViewController並查看他們的個人信息,修改信息等

我知道如何使用fetchResultsController中的所有球員名單拉。

  1. 我該如何才能最好地提取所需數據以顯示所選團隊的球員?另外,如果我只是將數據拉入數組以便顯示數據,那麼在對記錄進行其他更改時如何確保數組與數據保持同步?

回答

2

您需要獲取符合特定條件的對象是NSPredicate。

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"team=Tigers"]; 
[fetchRequest setPredicate:predicate]; 

現在,獲取請求返回結果,其中team attribute =「Tigers」。沒有謂詞它將返回所有對象。

謂詞可能會變得複雜 - 您可以有多個條件,特殊的操作符被定義爲「ANY」或「LIKE」。請參閱Predicate Programming Guide

關於第二個問題 - 您是否預計訪問具有多個線程的Core Data存儲?開始閱讀......您需要每個線程的託管對象上下文。如果不是,你基本上不需要擔心。對底層商店的更改會「出錯」,就像您跟隨您未明確提取的對象的關係一樣。

+0

非常感謝,非常感謝,那麼容易,那麼我認爲它會。 >你是否期望訪問多線程的Core Data存儲?不,上面我們現在不需要考慮創建一個單獨的數組,而只是依賴於改進的獲取請求。 – Evolve 2010-08-16 07:11:55