UIImageはNSCodingをサポートしていない
UIImagePickerControllerを使用して、画像を選択し、それをUIImageに格納する。
この処理はAppleがDevelopers Connectionで提供するサンプルコードにもあり、よく使われるコードです。
この先、自分のアプリでこのUIImageを保存するときに注意が必要です。なぜならば、
UIKmageはNSCodingをサポートしていない
からです。
NSDictionaryやNSArrayに入れて、そのまま忘れてNSCodingを行うとこんなエラーがコンソールに表示されます。
[UIImage encodeWithCoder:]: unrecognized selector
よってこの場合、UIImageの格納前にNSDataに変換します。
// PNGファイルをNSDataに変換(保存前) NSData *imageData = UIImagePNGRepresentation(imageToArchive); // NSDataからUIImageに変換(取出し後) NSData *imageData = 省略 if(imageData){ UIImage *image = [UIImage imageWithData:imageData]; }