0

NSUserDefaultsオーバーレイ画像を表示し、スクリーンショットを撮ってから取得するためにこれを保存する EAGLview がありますviewcontroller

しかし、画像をphoto album保存すると保存されますが、保存されませんNSUserDefaults。だから、私はNULL価値を得ています。


UIImage *glImage = [self glToUIImage];
self.screensht = [self createSavableImage:glImage];

UIImageWriteToSavedPhotosAlbum(self.screensht, nil, nil, nil);


NSData* imgData1=UIImagePNGRepresentation(self.screensht);
[[NSUserDefaults  standardUserDefaults] setObject:imgData1 forKey:@"image"];
[[NSUserDefaults  standardUserDefaults]synchronize];


NSLog(@"nsuserdefauls is %@",[[NSUserDefaults standardUserDefaults] stringForKey:@"image"]);
4

3 に答える 3

0

次の手順を試してください。

UIImage を保存するには:

  [[NSUserDefaults standardUserDefaults] setObject:UIImagePNGRepresentation([UIImage imageNamed:@"yourimage.png"])forKey:@"your_key"];

UIImage を取得するには:

 NSData* imageData = [[NSUserDefaults standardUserDefaults]objectForKey:@"your_key"];
 UIImage* image = [UIImage imageWithData:imageData];
于 2014-06-16T09:13:03.870 に答える
0

オブジェクトを取得するnilために誤って使用stringForKeyしたために取得しますが、これは文字列ではありません。次のことを試してください。

NSData* imageData = [[NSUserDefaults standardUserDefaults] objectForKey:key];

また、技術的には正しいですが、画像を plist に保存することはお勧めしません。詳細については、この回答をお読みください。

于 2014-06-16T09:15:26.227 に答える
0

NSDataオブジェクトをキー「画像」で保存したため、NULL値を取得しています。NSStringしかし、オブジェクトを取得しようとしています。同じキーを格納および取得するときは常に、同じオブジェクト タイプを使用する必要があります。

次のようなものを試すことができます

NSData* imgData2=[[NSUserDefaults standardUserDefaults] objectForKey:@"image"]
NSLog(@"nsuserdefauls is %@",imgData2);

上記の NSLog からオブジェクト タイプが表示される場合があります。

于 2014-06-16T09:15:57.180 に答える