0

ユーザーがカメラロールから選択した単一の画像があります。ユーザーが UI 画像ビューから画像を保存およびロードする機能を持っていることを望みます。アプリの実行が停止するか、デバイスが再起動されるまで、現時点では問題なくシングルトン クラスに画像が保存されています。

画像のテキスト文字列を保存するために使用したコードに似たものを使用できますか? .text を .image に変更しようとしましたが、当然のことながら、そのような運はありませんでした (少しリーチしました)。

- (IBAction)functionsave:(id)sender {
NSString *savecontents = _function.text;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:savecontents forKey:@"savecontents1"];
[defaults synchronize];


- (IBAction)Functionload:(id)sender {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *loadstring = [defaults objectForKey:@"savecontents1"];
[_function setText:loadstring];
4

1 に答える 1

1

NSString オブジェクトは、画像ではなく文字列を保持するのに適しています。後で使用するために画像を保存する場合は、それらの画像を PNG としてアプリのサンドボックス (ドキュメント フォルダー) に保存することをお勧めします。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

以下を使用して画像を保存できます。

UIImage *myImage = ...
NSData *data = UIImagePNGRepresentation(myImage);
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *appDocsDirectory = [paths objectAtIndex:0];
[data writeToFile:[NSString stringWithFormat:@"%@/%@.png",  appDocsDirectory , @"myNewFile"] atomically:YES];

次に、次の方法で画像を UIImage に取得できます。

UIImage* thumImage = [UIImage imageWithContentsOfFile:[[NSString stringWithFormat:@"%@/%@.png",  appDocsDirectory , @"myNewFile"]];

NSUserDefaultsより実ファイルを使った方がメモリ消費が良いと思います。一度に1つのファイルをメモリからロード/アンロードできるため。

于 2012-05-04T15:32:24.300 に答える