在iOS设备上本地保存解析对象

时间:2014-06-22 01:26:30

标签: ios iphone objective-c xcode5 parse-platform

在本地保存解析对象的正确方法是什么?我将它们放在一个NSMutableDictionary中并尝试用NSUserDefaults保存它们但是这个错误失败了,"尝试将非属性列表对象设置为NSUserDefaults值"。

我想将我的对象上传到Parse并在本地保存。有点像缓存它。我知道解析提供了查询缓存,但我也需要在上传时缓存,而不仅仅是在查询时。

如果它有所不同,我的pfobject中的项目是字符串和piffles(图像)。

如果有人能指出我正确的方向,我将不胜感激。

3 个答案:

答案 0 :(得分:4)

parse已于12月9日为iOS添加了此功能  http://blog.parse.com/2014/12/09/parse-local-datastore-for-ios/

答案 1 :(得分:2)

只有属性列表可以保存到NSUserDefaults。属性列表类型如下:NSArrayNSDictionaryNSStringNSDataNSDateNSNumber(请参阅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