你可以在 NSUserDefaults 中保存 Parse 信息吗? (IOS)
Posted
技术标签:
【中文标题】你可以在 NSUserDefaults 中保存 Parse 信息吗? (IOS)【英文标题】:Can you save Parse information in NSUserDefaults? (IOS) 【发布时间】:2015-03-30 19:54:46 【问题描述】:基本上,我想将我当前 Parse 用户的朋友保存到 NSUserDefaults 中。出于某种原因,它似乎没有正确保存,或者它不会让我保存它们。这是因为我返回的对象(朋友)数组对于 NSUserDefaults 处理复杂吗?
我已经尝试将对象数组转换为 NSData 并以这种方式保存,但我仍然没有产生任何好的结果。
如果有人可以帮助我,我将不胜感激。
干杯。
【问题讨论】:
【参考方案1】:你真的不应该使用 NSUserDefaults 来存储这种类型的信息。创建 NSUserDefaults 是为了存储和检索“设置”类型信息而不是数据。
至于你的问题,为了保存自定义对象,你需要实现这两种方法:
- (void)encodeWithCoder:(NSCoder *)encoder
- (id)initWithCoder:(NSCoder *)decoder
这些方法基本上会告诉应用程序如何将对象数据存储在文件中,以及如何将其读回并从中创建对象。
文档: https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/Archiving/Articles/codingobjects.html
但是,如果您希望在本地存储这些对象,您应该查看 Parse 的本地缓存功能。您也可以使用 Core Data 在本地存储对象,但维护 2 个对象实例可能很难看。
解析本地缓存:
https://www.parse.com/docs/ios_guide#localdatastore/iOS
【讨论】:
最好使用 parse SDK 提供的本地缓存或类似 Core Data... 你是对的,我已经更新了我的答案以反映 OP 如何实现保存自定义对象但推荐 Parse 本地数据存储的更好解决方案。以上是关于你可以在 NSUserDefaults 中保存 Parse 信息吗? (IOS)的主要内容,如果未能解决你的问题,请参考以下文章
在 NSUserDefaults 和 Realm 中保存一个对象
Objective-C 在 NSUserDefaults 中保存 NSColor