1

imagepickerから画像を取得している最初のビューコントローラのnsuserdefaulfに画像を保存しています

[[NSUserDefaults standardUserDefaults] setObject:UIImagePNGRepresentation(image)            forKey:@"image"];

そして私はこのような次のviewControllerでこの画像を取得しています

 NSData* imageData = [[NSUserDefaults standardUserDefaults] objectForKey:@"image"];
 UIImage* image = [UIImage imageWithData:imageData];

しかし、この画像を使用するために渡すとエラーが発生しますが、このような画像を使用すると機能します。(bg.pngはプロジェクト内に保存されます)

UIImage *image = [UIImage imageNamed:@"bg.png"];

私のコードの問題は何ですか。?

4

5 に答える 5

2

Zohaib さん、コードに変換の問題があります。
最初に「NSDATA」で画像を変換してから、「NSUserDefaults」に追加します

NSData *data = [NSData dataWithData:UIImageJPEGRepresentation(画像);

その後、データを取り戻すことができます。

于 2013-03-19T07:20:48.280 に答える
1

このメソッドは、ピッカーから画像を選択するときに呼び出されます

したがって、UIImage *imgGotFromPicker;これを.hファイルで宣言します

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
    {

    imgGotFromPicker = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
}

プッシュ時にこの画像を他のviewControllerに送信します。

2 番目のビュー コントローラーで:

@property(nonatomic, strong) UIImage *imgfromView;  in .h

@synthesize imgfromView = _imgfromView;  in .m
于 2013-03-19T07:17:25.253 に答える
1

画像を保存して他のビューで取得するには、次の方法を使用できます。

保存方法:

[[NSUserDefaults standardUserDefaults] setObject:UIImagePNGRepresentation(image);

取得方法:

NSData* imageData = [[NSUserDefaults standardUserDefaults] objectForKey:key];
UIImage* image = [UIImage imageWithData:imageData];
于 2015-05-27T06:16:29.063 に答える
0

アプリにこの画像がある場合、画像の名前を保存する必要がありますか? 店 :

[[NSUserDefaults standardUserDefaults] setObject:@"bg.png"forKey:@"image"];

その後、他のビューでこのコードを使用します

読んだ

UIImage *image = [UIImage imageNamed:[myUserDefaults valueForKey: @"image"]];
于 2013-03-19T07:11:37.347 に答える
0

NSData を NSUserDefaults に直接保存しています。これは、これを行う正しいプロセスではありません。NSUserDefaults からデータを保存および取得するには、NSKeyedArchiver および NSKeyedUnarchiver を使用する必要があります。だからこれを試してください:

NSKeyedArchiver と NSKeyedUnarchiver

このリンクは、データの保存と取得に役立ちます。また、次の 2 つのメソッドを実装する必要があります。

-(void)encodeWithCoder:(NSCoder *)encoder
{

}

-(id)initWithCoder:(NSCoder *)decoder
 {

  return self;
}
于 2013-03-19T07:37:47.330 に答える