NSUserDefaults
除了保存和取回自定义对象之外,还有什么其他方法?对我来说,NSUserDefaults
已经变得太麻烦了(它没有正确保存),所以我正在寻找另一种方法来保存有效的数据。(我已经把我的问题贴出来了,我真的只是想寻找其他方法来保存数据)
编辑:我还需要能够保存 UIIMages 和 UIButtons 之类的东西。
NSUserDefaults
除了保存和取回自定义对象之外,还有什么其他方法?对我来说,NSUserDefaults
已经变得太麻烦了(它没有正确保存),所以我正在寻找另一种方法来保存有效的数据。(我已经把我的问题贴出来了,我真的只是想寻找其他方法来保存数据)
编辑:我还需要能够保存 UIIMages 和 UIButtons 之类的东西。
text
文件或plist
文件。SQLLite
用来保存数据。除此之外,如果您使用的是服务器驱动的应用程序,那么您可以将数据保存在服务器上并在需要时取回。
UIImages 应该通过创建一个 PNG 或 JPEG 表示来保存,然后在你认为合适的时候写出那个 NSData 块。请参阅UIImagePNGRepresentation。
UIButtons 应该使用NSCoding协议进行序列化/反序列化。档案馆可以为您解决这个问题。
NSData 和 UIButtons 都支持 NSCoding,所以我建议归档而不是 NSUserDefaults。请参阅 NSCoding 以了解该兔子洞的开头。
要存储自定义对象,您需要确保您的自定义对象实现了 NSCoding 协议。这是 Apple 关于NSCoding 的文档。 . 如果您需要有关如何实现 NSCoding 协议的教程,请查看此站点。 要将 UIImage 保存到文件中,可以将图像转换为 NSData,然后使用 NSData 的 writeToFile 方法写入文件。关于如何在 SO 上做最后一部分的例子很多。这是一个。
You cans use plist or coreData.As you used NSUserDefaults , that means data is quite small so plist will be a good idea.Both are apple's so quite effiecient .If data gets really large you can use sqlite.