在本地保存解析对象的正确方法是什么?我将它们放在一个NSMutableDictionary中并尝试用NSUserDefaults保存它们但是这个错误失败了,"尝试将非属性列表对象设置为NSUserDefaults值"。
我想将我的对象上传到Parse并在本地保存。有点像缓存它。我知道解析提供了查询缓存,但我也需要在上传时缓存,而不仅仅是在查询时。
如果它有所不同,我的pfobject中的项目是字符串和piffles(图像)。
如果有人能指出我正确的方向,我将不胜感激。
答案 0 :(得分:4)
parse已于12月9日为iOS添加了此功能 http://blog.parse.com/2014/12/09/parse-local-datastore-for-ios/
答案 1 :(得分:2)
只有属性列表可以保存到NSUserDefaults
。属性列表类型如下:NSArray
,NSDictionary
,NSString
,NSData
,NSDate
,NSNumber
(请参阅property lists description)。
如果某个类符合NSCoding
协议,则可将其序列化为NSData
,然后保存到NSUsedDefaults
(请参阅Storing NSColor in User Defaults文章)。
但PFObject
类不符合NSCoding
协议,因此无法将其序列化为NSData
并保存为用户默认值。
但是,据我所知,你可以create NSDictionary
from PFObject
;您可以将NSDictionary
保存到NSUserDefaults
,然后从保存的PFObject
恢复NSDictionary
。
答案 2 :(得分:1)
现在没有正确的方法可以做到这一点。本地数据存储已于2014年4月30日添加到Android,并将很快到达iOS。
你不应该这样做,因为它在新的SDK发布后肯定会破坏,但我确实找到了一种做到这一点的hacky方式...... https://gist.github.com/gfosco/ac6b5ebb42791ced0932