【问题标题】:Ordered CoreData records有序的 CoreData 记录
【发布时间】:2011-12-07 17:27:52
【问题描述】:

据我所知,CoreData 在添加记录时不会保留记录的顺序。因此,如果我们想在 CoreData 中存储对象数组,我们应该将 orderId 之类的字段添加到对象并手动填充它。但是看起来底层的sqlite基础存储了记录的索引,所以可能有一种方法可以在不添加额外字段的情况下存储有序对象?

【问题讨论】:

    标签: iphone objective-c cocoa-touch core-data


    【解决方案1】:

    简短回答:不。 长答案:

    • 为了保存订单,必须存储订单信息。它可以是隐式的,使用 ShiShi 建议的现有属性的排序描述符。或者,您可以添加一个新属性,以明确维护实例的排序顺序。

    • 如果客户端代码没有定义一个隐式主键 rowId,SQLite 会维护它。但是如果客户端代码定义了一个整数主键,SQLite 将使用它作为它的 rowId。换句话说,尝试聪明并使用SQLite的rowId在空间或时间上没有任何优势。请注意,您可以告诉 Core Data 您的属性应该被索引。 Core Data 可能会也可能不会定义另一个主键。

    • 试图依赖 Core Data 如何实现其持久存储是一种**BAAAAD** 想法:您的代码将破坏与其他存储的兼容性,过去现在或将来,并且可能会随着未来的更新而中断。

    • 您可能已经注意到,Core Data 现在支持与 Mac OS X Lion 或 iOS 5 的有序关系。底层实现很可能使用特定的附加列来存储排序信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-07
      相关资源
      最近更新 更多