2011-10-02 41 views
0

我有2個實體的簡單模型HouseFlat房子有很多關係到平面平面有屬性,如號碼說明CoreData - 如何創建fetchrequest以獲取隨機屬性值的數組

我想獲得一個隨機八個單位的數字列表。

我試圖走這條路,但似乎」錯誤

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 

    NSEntityDescription *entity = [NSEntityDescription entityForName:@"House" inManagedObjectContext:self.managedObjectContext]; 

    [fetchRequest setEntity:entity]; 

    [fetchRequest setFetchBatchSize:20]; 

    NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:@"Root"]; 

    NSArray *houses = [aFetchedResultsController fetchedObjects]; 

然後,我需要得到適當的值。

請給我一個正確的方法。

我試着回答自己。也許我的大腦幹:) 只需要

​​

,然後用獲取的對象數組工作。但我相信鋼有更優雅的解決方案。

我還有與第一個有關的問題。 如何獲得隨機對象,如果單位數量約10000?總的來說,它可以起作用,但速度明顯下降。

回答

0

LimitSort隨機記錄並設置[fetchRequest setFetchLimit:8];以獲得前八個。對於隨機排序,使用選擇器或比較器隨機返回NSComparisonResult並將此描述符添加到獲取請求中,製作NSSortDescriptor

+0

謝謝你的回答。但你的意思是[fetchRequest setFetchLimits:8] – Michael

+0

糟糕!是的,我的意思是'setFetchLimit:' – Davyd