代码之家  ›  专栏  ›  技术社区  ›  Buzzy

从核心数据存储中选择随机条目

  •  4
  • Buzzy  · 技术社区  · 15 年前

    有没有办法选择一个固定的数字 随机的 核心数据存储中的条目?我刚刚开始使用核心数据,并在这个问题上停留了很长一段时间。

    最后,我可以在内存中查询大量的条目,然后随机选择一个固定的数字。

    另外,有没有一种方法可以指定要在核心数据存储上执行的自定义SQL语句?我意识到这是非常不可能的,因为存储的底层实现也可能是一个XML文件。

    3 回复  |  直到 15 年前
        1
  •  2
  •   IlDan    15 年前

    嗯…也许吧

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

    其中r是0和对象数减去1之间的随机整数?一点效率都没有,但又快又容易。

    编辑 :如果要在所选对象之间选择随机对象,请创建描述对象选择的提取请求,并对查询结果执行上述操作:

    [[[managedObjectsContext executeFetchRequest:request error:&error] objectAtIndex:r]
    
        2
  •  0
  •   Don    15 年前

    关于您的第二个问题,这是核心数据的要点之一,用于抽象出底层数据存储。使用nspredicate和nsexpressions构建提取请求,或者将请求存储在数据模型中,这是查询存储的唯一方法。

        3
  •  0
  •   Jonathan Sterling    15 年前

    不确定,但我认为核心数据会为您将数据放入nsset。所以您可以使用-[nsset anyobject]。我没有测试过。