从Core Data Store中选择随机条目

时间:2009-07-13 09:52:27

标签: iphone objective-c core-data

有没有办法从Core Data商店中选择固定数量的随机条目?我刚刚开始使用Core Data,并且已经坚持了很长一段时间。

作为最后的手段,我可​​以在内存中查询大量条目,然后随机选择固定数字。

另外,有没有办法指定要在Core Data存储上执行的自定义SQL语句?我意识到这很不可能,因为商店的底层实现也可能是XML文件。

3 个答案:

答案 0 :(得分:2)

嗯......也许

[[[managedObjectsContext registeredObjects] allObjects] objectsAtIndex:r]

其中r是0和对象数减1之间的随机int?根本没有效率,但又快捷方便。

编辑:如果您想在所选对象之间选择随机对象,请创建描述对象选择的获取请求,并使用查询结果执行与上述相同的操作:

[[[managedObjectsContext executeFetchRequest:request error:&error] objectAtIndex:r]

答案 1 :(得分:0)

关于你的第二个问题,这是核心数据的一个要点,要抽象出底层数据存储。使用NSPredicate和NSExpressions构建获取请求,或者在数据模型中存储获取请求是查询商店的唯一方法。

答案 2 :(得分:0)

不确定,但我认为Core Data会为您提供数据到NSSets。所以你可以使用 - [NSSet anyObject]。我没有测试那个或任何东西。