2011-11-09 11 views
0

5つのUIImagesを含むNSMutableArrayをNSUserDefaultsに保存しようとしましたが動作しませんでした。私は警告を受けたNSMutableArrayをUIImagesで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

はい、UIImagePNGRepresentationまたはUIImageJPEGRepresentation関数を使用して、画像のバイナリデータを目的の形式で取得し、次にNSArrayにシリアル化する必要があります。

例:

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

//... 

[[NSUserDefaults standardUserDefaults] setObject:yourArray forKey:@"images"]; 
関連する問題