【问题标题】:Saving NSMutableArray with UIImages to NSUserDefaults将带有 UIImages 的 NSMutableArray 保存到 NSUserDefaults
【发布时间】:2011-11-09 10:46:11
【问题描述】:

我试图将包含五个 UIImages 的 NSMutableArray 保存到 NSUserDefaults 并且没有工作。我收到警告

-[NSUserDefaults setObject:forKey:]: Attempt to insert non-property value '(
    "UIImage: 0x4c76570,
    "UIImage: 0x4c76570",
    "UIImage: 0x4c76570",
    "UIImage: 0x4c76570",
    "UIImage: 0x4c76570"
)' of class '__NSArrayM'.

OK 好像我需要将我的 Array 归档到 NSData 中。但是我如何让 UIImage 符合 NSCoding 呢?我应该先将图像转换为 NSData 还是有更简单的方法?

【问题讨论】:

    标签: objective-c uiimage nsuserdefaults nscoding


    【解决方案1】:

    是的,您需要使用UIImagePNGRepresentationUIImageJPEGRepresentation 函数以所需格式检索图像的二进制数据,然后您可以将其序列化为NSArray

    一个例子:

    UIImage *someImage = ...;
    NSData *someImageData = UIImagePNGRepresentation(someImage);
    [yourArray addObject:someImageData];
    
    //...
    
    [[NSUserDefaults standardUserDefaults] setObject:yourArray forKey:@"images"];
    

    【讨论】:

      猜你喜欢
      • 2013-04-16
      • 2013-04-03
      • 2013-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多