2

UIImagePickerController から取得した画像を NSUserDefaults に保存して、生成したアルバムで開くことができるようにしようとしていますが、デリゲート メソッドを呼び出して画像を保存すると、エラーが発生します。

[NSUserDefaults setObject:forKey:]: Attempt to insert non-property value '<UIImage: 0x1d0bf0>' of class 'UIImage'.  Note that dictionaries and arrays in property lists must also contain only property values.`

コードは次のとおりです。

self.savedPic = [[UIImage alloc] init];
self.savedPic = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
[[NSUserDefaults standardUserDefaults] setValue:self.savedPic forKey:[NSString stringWithFormat:@"image_%i",imageCount]];
4

2 に答える 2

1

それは非常に簡単です、私のコードを見てください:

- (UIImage *)backgroundImage {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData* myEncodedImageData = [defaults objectForKey:@"backgroundImageData"];
UIImage* image = [UIImage imageWithData:myEncodedImageData];
return image;
}

- (void)setBackgroundImage:(UIImage *)image {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData* imageData = UIImagePNGRepresentation(image);
[defaults setObject:imageData forKey:@"backgroundImageData"];
[defaults synchronize];
}
于 2012-09-28T04:00:44.273 に答える
1

イメージをディスクに保存し、イメージの名前を NSUserDefaults に入れ、必要に応じて作成する必要があります。

[UIImage imageNamed:@"nameOfImage.png"]
于 2012-06-10T10:16:56.593 に答える