我正在寻找一种内存有效的方法来从获取结果集中只获取一行。这必须是随机的。
我想使用[context countForFetchRequest:fetch error:nil];
并获得一个介于 0 和那个之间的 int 随机值,然后将 offset + 限制为 1 个结果。但我找不到它是否没有为它计数的每个项目分配内存。
“计数”是轻量级操作吗?还是需要先在上下文中实例化对象才能对它们进行计数?
我正在寻找一种内存有效的方法来从获取结果集中只获取一行。这必须是随机的。
我想使用[context countForFetchRequest:fetch error:nil];
并获得一个介于 0 和那个之间的 int 随机值,然后将 offset + 限制为 1 个结果。但我找不到它是否没有为它计数的每个项目分配内存。
“计数”是轻量级操作吗?还是需要先在上下文中实例化对象才能对它们进行计数?
文档有些不清楚,但它包含“给定获取请求将返回的对象数”这一短语。此外,Core Data 倾向于使事情变得count
非常轻量 - 例如,实体实例允许您调用count
以找出一对多关系结束时的对象数量,而无需实例化所有这些对象或触发该错误。我会说去吧,但你自己分析一下——不要过早地优化!