有沒有辦法從核心數據存儲中選擇固定數量的隨機條目?我剛剛開始使用Core Data,並且在相當一段時間內一直停留在這個問題上。從核心數據存儲中選擇隨機條目
作爲最後的手段,我可以查詢大量的條目到內存中,然後隨機選擇一個固定的數字。
另外,有沒有辦法指定要在覈心數據存儲上執行的自定義SQL語句?我意識到這是不太可能的,因爲商店的底層實現也可能是XML文件。
有沒有辦法從核心數據存儲中選擇固定數量的隨機條目?我剛剛開始使用Core Data,並且在相當一段時間內一直停留在這個問題上。從核心數據存儲中選擇隨機條目
作爲最後的手段,我可以查詢大量的條目到內存中,然後隨機選擇一個固定的數字。
另外,有沒有辦法指定要在覈心數據存儲上執行的自定義SQL語句?我意識到這是不太可能的,因爲商店的底層實現也可能是XML文件。
嗯......也許
[[[managedObjectsContext registeredObjects] allObjects] objectsAtIndex:r]
其中r是0和對象減去一個數之間隨機中斷?一點效率都不高,但又快又簡單。
編輯:如果你想選擇一個選擇你的對象之間的隨機對象,然後創建一個讀取請求描述你的對象選擇並執行與上面的查詢結果:
[[[managedObjectsContext executeFetchRequest:request error:&error] objectAtIndex:r]
關於你的第二個問題,這是核心數據的一個要點,用於抽象出底層數據存儲。使用NSPredicate和NSExpressions構建一個提取請求,或者將其存儲在數據模型中是查詢商店的唯一方法。
不確定,但我認爲Core Data會爲您提供數據到NSSets。所以你可以使用 - [NSSet anyObject]。我沒有測試過這個或任何東西。
-anyObject從開發者的角度來看是隨機的,因爲你無法控制它,但實際上它只是內部數據存儲根目錄中的任何對象,所以它始終是相同的對象,直到該集被改變。 – TALlama 2009-11-29 10:27:41
並非我店中的所有託管對象都屬於同一類型。我想要一個特定類型的隨機輸入。在所有註冊的對象中挑選一個隨機對象可能不起作用。 我在我的條目中使用標識字段。幸運的是,我知道沒有缺失的身份值。我只是隨機選擇身份值並使用相同的方式指定NSPredicate。雖然這是現在的工作,但必須有更好的方法。 儘管感謝您的幫助。 – Buzzy 2009-07-14 03:26:13