0

5つのUIImageを含む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、アレイをNSDataにアーカイブする必要があるようです。しかし、どうすればUIImageをNSCodingに準拠させることができますか?最初に画像をNSDataに変換する必要がありますか、それとももっと簡単な方法がありますか?

4

1 に答える 1

4

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

例:

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

//...

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