0
我有2個模型,一個叫做Books,另一個叫做Users。作爲一種關係,用戶可以只有一本書。我想循環遍歷所有「已批准」(用戶屬性)的用戶,並根據存儲在名爲「評級」的書籍中的屬性對它們進行排序。我寫了這個可以這樣做:正在訪問for循環中的核心數據關係很慢?
- (NSArray *)sortedApprovedUsersByBookRating
{
NSArray *allUsersWithBooks = [User fetchFromDatabaseWithPredicate:[NSPredicate predicateWithFormat:@"approved == 1"] error:nil];
NSArray *sortedUsers = [allUsersWithBooks sortedArrayUsingComparator:^NSComparisonResult(User a, User b) {
return [a.book.rating compare:b.book.rating];
}];
return sortedUsers;
}
而且這個工作,因爲我有用戶本書叫核心數據的關係,它抓住了正確的書,排序,所有罰款和回報。但是,我注意到,當我有很多用戶時,這是一個非常緩慢的過程。我的理論是因爲每次訪問a.book或b.book時,都必須從核心數據中獲取它。
我想知道是否有解決這個問題,當給定的用戶誰批准屬性是真實的,我可以返回這些用戶基於他們的書評分排序,我不必查詢用戶的書每次。