你可以在 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

将转换保存到 NSUserDefaults?

NSUserDefaults 自动加载和保存数据

NSUserDefaults NSMutable 数组未在会话之间保存

即使应用程序将被删除,如何在 NSUserDefaults 中保存数据?