如何在NSUserDefaults中存储包含PFObjects的数组?

时间:2015-02-13 04:25:16

标签: parse-platform nsuserdefaults nskeyedarchiver pfobject nskeyedunarchiver

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

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

1 个答案:

答案 0 :(得分:0)

来自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的库,它将NSCoding扩展添加到Parse对象。它没有更新,但您可以查看它。