0

我试图将包含五个 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'.

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

4

1 回答 1

4

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

一个例子:

UIImage *someImage = ...;
NSData *someImageData = UIImagePNGRepresentation(someImage);
[yourArray addObject:someImageData];

//...

[[NSUserDefaults standardUserDefaults] setObject:yourArray forKey:@"images"];
于 2011-11-09T10:47:50.600 回答