0

iOSアプリでペイントストロークを保存するのに少し問題があります。NSUserDefaultsを使用してアプリにテキストを正常に保存しましたが、画像の保存が同じように機能するかどうかはわかりません。とにかく、次のようになります。

-(IBAction)saveImage:(id)sender
{
    UIImage *saveImage = drawImage.image;
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:saveImage forKey:@"image"];
    [defaults synchronize];
}

アプリ(saveImage)の保存ボタンを押すたびに、Xcodeの出力は「-」と応答します[NSUserDefaults setObject:forKey:]: Attempt to insert non-property value '<UIImage: 0x1f076ee0>' of class 'UIImage'

これが何を意味するのかわかりません。私はXcodeとObjective-Cを初めて使用するので、どんな助けでも大歓迎です。助けてくれてありがとう、-Karl。

4

2 に答える 2

2

UIImageの値としてを保存しようとしていますNSUserDefaults。あなたがする必要があるのは、に変換しUIImageNSData、代わりにそれを保存することです。

-(IBAction)saveImage:(id)sender
{
    UIImage *saveImage = drawImage.image;

    NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(saveImage)];

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:imageData forKey:@"image"];
    [defaults synchronize];
}
于 2012-06-24T17:26:46.253 に答える
0

NSUserDefaultUIImage直接保存することはできませんが、として保存することはできますNSData。このために画像のもみを変換してからこれを保存します

  NSData *imageData = UIImagePNGRepresentation(drawImage.image);
  NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
  [defaults setObject:imageData forKey:@"imageData"];
  [defaults synchronize];

NSDataをUIImageに戻すには、imageWithDataを使用します。

 UIImage *myImage = [UIImage imageWithData:imageData];
于 2012-06-24T17:30:09.437 に答える