2011-11-09 103 views
0

我試圖保存包含五個UIImages到NSUserDefaults的NSMutableArray,但沒有工作。我得到了警告用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

是的,你要麼需要使用UIImagePNGRepresentationUIImageJPEGRepresentation功能所需的格式,然後您可以將序列化爲一個NSArray檢索圖像的二進制數據。

一個例子:

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

//... 

[[NSUserDefaults standardUserDefaults] setObject:yourArray forKey:@"images"]; 
相關問題