【问题标题】:Sqlite 3 vs NSCoding ProtocolSqlite 3 vs NSCoding 协议
【发布时间】:2011-02-14 07:02:53
【问题描述】:

这对于存储缓存数据更有效。我看到 Twitter for Mac 将信息块存储在 sqlite 文件中。部分应用实现了 NSCoding 协议。

一个比另一个有什么优势吗?

【问题讨论】:

    标签: iphone objective-c ios4


    【解决方案1】:

    两者完全不同。 SQLite 是一个关系数据库,NSCoding 周围的东西是一种对象序列化技术。选择取决于您的缓存数据。如果你的缓存是一堆对象,我当然会选择NSCoding,因为它使用起来非常简单,比原始 SQLite 简单得多。如果您在磁盘缓存中有数千个对象并且不想一次加载所有对象,那么您可能更适合 SQLite。

    【讨论】:

    • 谢谢,你看到 Twitter for Mac 的 cache.db 了吗?他使用 sqlite 文件,但不作为数据库。每一行只是将信息存储在 blob 中。想知道在 sqlite 上使用文件系统时是否有任何性能问题。
    【解决方案2】:

    与其处理 SQL 复杂性,不如尝试使用 CoreData 之类的东西,它可以很容易地存储对象图。

    如果您需要存储二进制数据,CoreData 也可以这样做,但您在指定数据模型时应考虑数据大小。

    查看 Marcus Zarra 关于此主题的演讲:

    您可能会发现 Aaron Hillegass 的其他有趣信息:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-15
      • 2011-12-13
      相关资源
      最近更新 更多