【问题标题】:Ways to save data without NSUserDefaults不使用 NSUserDefaults 保存数据的方法
【发布时间】:2012-05-24 16:35:11
【问题描述】:

除了NSUserDefaults 还有什么其他方法可以保存和取回自定义对象?对我来说,NSUserDefaults 太麻烦了(它没有正确保存),所以我正在寻找另一种方法来保存有效的数据。 (我已经把我的问题贴出来了,我真的只是想寻找其他方法来保存数据)

编辑:我还需要能够保存 UIIMages 和 UIButtons 之类的东西。

【问题讨论】:

    标签: ios nsuserdefaults


    【解决方案1】:

    要存储自定义对象,您需要确保您的自定义对象实现了 NSCoding 协议。这是 Apple 在NSCoding. 上的文档。如果您需要有关如何实现 NSCoding 协议的教程,请查看 this site. 将 UIImage 保存到文件中,您可以将图像转换为 NSData 然后使用 NSData 的 writeToFile 方法写入文件。关于如何在 SO 上做最后一部分的例子很多。这里是one.

    【讨论】:

      【解决方案2】:

      应该通过创建一个 PNG 或 JPEG 表示来保存 UIImage,然后按照您认为合适的方式写入该 NSData 块。见UIImagePNGRepresentation

      UIButtons 应该使用NSCoding 协议进行序列化/反序列化。档案可以为您解决这个问题。

      NSData 和 UIButtons 都支持 NSCoding,所以我建议存档而不是 NSUserDefaults。关于那个兔子洞的开始,请参阅 NSCoding。

      【讨论】:

        【解决方案3】:

        您可以使用 plist 或 coreData。由于您使用 NSUserDefaults ,这意味着数据非常小,因此 plist 将是一个好主意。两者都是苹果的非常高效。如果数据变得非常大,您可以使用 sqlite。

        【讨论】:

          【解决方案4】:
          1. 您可以将数据保存为普通的text 文件或plist 文件。
          2. 您可以使用SQLLite来保存数据。

          除此之外,如果您使用的是服务器驱动的应用程序,那么您可以将数据保存在服务器上,并在需要时取回。

          【讨论】:

          • @ManOx - 可以存储在应用程序包中的图像。
          猜你喜欢
          • 2013-11-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-09-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多