Iphone 核心数据-如何进行复杂的随机提取
这更像是一个具有核心数据的通用设计查询,以及如何设计它以使其高效 我的应用程序是一个文字游戏,有一个sqlite3数据库,里面有一个由2-28个字母组成的单词组成的字典。数据库中有用于单词和单词大小的列 我想要得到的结果(以及我想要设计的查询)是获取每种大小的10个随机单词,即10个随机2字母单词、10个随机3字母单词等等 此外,在加载应用程序时,我正在尝试在AppDelegate中提前执行此提取 我考虑过几种方法,但真的需要你的意见:Iphone 核心数据-如何进行复杂的随机提取,iphone,mysql,objective-c,core-data,Iphone,Mysql,Objective C,Core Data,这更像是一个具有核心数据的通用设计查询,以及如何设计它以使其高效 我的应用程序是一个文字游戏,有一个sqlite3数据库,里面有一个由2-28个字母组成的单词组成的字典。数据库中有用于单词和单词大小的列 我想要得到的结果(以及我想要设计的查询)是获取每种大小的10个随机单词,即10个随机2字母单词、10个随机3字母单词等等 此外,在加载应用程序时,我正在尝试在AppDelegate中提前执行此提取 我考虑过几种方法,但真的需要你的意见: 获取一定大小的所有字母,然后获取结果中的随机记录。这意味着
Pras.我想我已经通过一些测试找到了自己的答案 方法(1)显然是一种简单的方法,但资源太密集,无法获取和存储大量数据 方法(3)太傻了 因此,我选择了方法(2)和一些新获得的核心数据技能 方法如下:
Pras.如果您的词典相对静态,请预先计算不同长度的单词数。为每个单词保留一个自定义ID字段,将其标识为长度为L的单词的实例I。例如,单词“foo”可能是长度为3的单词的实例638,“fop”可能是639,等等 从这些范围生成随机索引(对于给定的L,只是一个随机样本,不替换1和I[max]之间的数字),将它们放入NSSet并使用该集合应用谓词 这样,您就不会检索所有对象,而是只检索一个子集,只需一次获取。费用是修改字典以保存预计算的索引,并且您希望在某个地方跟踪IMAX,但是如果字典没有太大变化,那么您只需要做一次索引(并且添加后续单词的成本应该更低)