【问题标题】:How can I store array that contains PFObjects in NSUserDefaults?如何在 NSUserDefaults 中存储包含 PFObjects 的数组?
【发布时间】:2015-02-13 04:25:15
【问题描述】:

一些 PFObject 包含 PFFile(图像文件),而另一些则没有。当我尝试使用 NSKeyedArchiver 和 NSKeyedUnarchiver 将自定义对象存储到用户默认值时,它不起作用。

帮助我如何将 PFObjects 数组存储到包含 PFFile 类型字段的 UserDefault 中。

【问题讨论】:

    标签: parse-platform nsuserdefaults nskeyedarchiver pfobject nskeyedunarchiver


    【解决方案1】:

    来自NSUserDefaults documentation

    默认对象必须是属性列表,即以下实例(或集合实例的组合):NSData、NSString、NSNumber、NSDate、NSArray 或 NSDictionary。如果要存储任何其他类型的对象,通常应该将其归档以创建 NSData 的实例。

    所以你可以通过getDataInBackgroundWithBlock获取你的文件数据并保存到NSUserDefaults:

        [file getDataInBackgroundWithBlock:^(NSData *data, NSError *error) {
            [[NSUserDefaults standardUserDefaults] setObject:data forKey:@"file"];
            [[NSUserDefaults standardUserDefaults] synchronize];
        }];
    

    还有一个名为Parse-NSCoding 的库,它为 Parse 对象添加了 NSCoding 扩展。没有更新,你可以去看看。

    【讨论】:

    • 是的。此解决方案适用于单个 PFFile,但我正在寻找存储包含如此多 PFFile 的 PFObject 的完整数组的解决方案。将一个数组存储在一个 UserDefault 键中。
    猜你喜欢
    • 1970-01-01
    • 2018-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-17
    • 1970-01-01
    • 2017-08-27
    相关资源
    最近更新 更多