2009-11-25 57 views
1

我最近一直在尋找iPhone的核心數據,我有一個查詢,我沒有找到答案在文獻中。核心數據(iPhone) - 限制跨關係的提取結果

讓我們想象一下,我有一個用戶模型對象與一個購買對象一對多的關係。 A 用戶可能有數千次購買。

所有的迄今爲止我所看到的信息似乎表明,取操作進行跨關係將返回一個NSSet中所有與特定用戶相關的購買對象。

顯然,如果有一些方法來限制由取出購買對象的數目我寧願:

1)強加某種準則(例如僅超過1000£等)購買;或

2)只有在上述不可能的情況下才批量提取。

以上可能嗎?我擔心的是,由於iPhone的有限內存,我冒着數千次不必要的提取對象的風險來重載它。

在此先感謝您的答覆。

回答

1

我的理解是,當你獲取User對象時,與它的Purchase對象的關係將是一個只在被訪問時才加載的錯誤。
相反,您可以使用謂詞來獲取Purchase對象,該謂詞指定用戶並檢查任何其他條件。這就是說,在性能問題上花費太多時間之前,我肯定會測試現實的用例(在設備上)。 iPhone和Core Data的效率可能讓你感到驚訝。

+0

不知道我是否應該根據您的回答打開一個新問題,所以我會先問這裏:1)一旦購買錯誤被激發,是否意味着該用戶的每個單獨的購買對象也被加載? 2)如果我使用謂詞來代替,我是否完全不依賴用戶 - >>購買關係,而是使用其他字段將用戶鏈接到其購買以及完全不同的獲取請求? – BoltClock 2010-10-08 18:06:55

+0

不確定。如果您還沒有或者正在審覈核心數據編程指南(由Barry Wark的答案鏈接),可能值得開個新問題。 – gerry3 2010-10-13 23:59:09

2
  1. 使用獲取的財產
  2. 使用NSFetchedResultsController

回答這些,你將不得不在旁邊的Core Data Programming Guide爲iPhone回答的問題。