Re: [問題] CoreData能否從某managedOjbect中fetch?

看板MacDev作者 (Bang!)時間12年前 (2012/10/05 00:14), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
Predicate的順序很重要! 盡量把可以刪去最多物件的條件擺在最前面 假設你要找employee的name是bill或nick, 而且是XXX orgnization 那predicate的順序應該是(ognization == XXX AND name IN {'bill', 'nick'}) 詳情可參考WWDC 2012 Session 214 Optimizing Your Predicate 另一種情形 如果你只是要orgnization的所有empolyee 不做進一步搜尋 那直接用orgnization.employees就好了 ※ 引述《xareelee (XareeLee)》之銘言: : 我有一個關於Core Data fetch資料的問題 : 假如有一個Entity叫Orgnization,另外一個Entity叫Employee : 然後 Orgnization 有一個 relationship 叫 employees 指向-> Employee : Employee 有一個 relationship 叫 orgnization 指向-> Orgnization : 兩者互為Inverse : 然後在iOS的Table View下 用FetchRequest設定其entity的name為 @"Orgnization" : 這樣就可以list 出所有的 orgnizations。 : 問題是當我想點選其中一個 orgnization 時,想要看裡面有哪些員工。 : 一般的作法是 push 一個新的 table view之後, : 重設一個FetchRequest找entity的name為 @"Employee"的, : 並設定其Predicate要它的attribute(orgnization)為 之前所點選的那個orgnization。 : 當Employee的資料大量增加的時候,這種fetch方式會變得很沒效率。 : 例如有10,000筆Orgnization資料 1,000,000筆Employee資料 : 但是平均一個Orgnization 只有100個employees。 : 所以fetch整個Employee table會很沒效率 在一開始限縮某orgnizatoin.employees較好 : 有什麼辦法可以做一個fetchResultsController 要找Employee : 但是fetch範圍一開始就限縮為某orgnization.employees的資料嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 199.2.242.199
文章代碼(AID): #1GRRNi7v (MacDev)
文章代碼(AID): #1GRRNi7v (MacDev)