0

私はこれに本当に苦労しています。アプリで画像を保存して読み込むという果てしない探求の 3 日目です。カメラ ロールから画像を選択し、appsdocsdirectory を介してデバイスに保存しようとしています。

Appdelegate.m には次のものがあります。

// Returns the URL to the application's Documents directory.
- (NSURL *)applicationDocumentsDirectory
{
    return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];

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

画像を保存してロードしたいクラスで(カメラロールからUI imageViewに選択)

- (IBAction)save:(id)sender {
    UIImage *myImage = [imageView image];
    NSData *data = UIImagePNGRepresentation(myImage);
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *appDocsDirectory = [paths objectAtIndex:0];
}

- (IBAction)load:(id)sender {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *appDocsDirectory = [paths objectAtIndex:0];
    UIImage* thumImage = [UIImage imageWithContentsOfFile: [NSString stringWithFormat:@"%@/%@.png", appDocsDirectory, @"myNewFile"]];
}
@end

このクラスで Appdelegate.h もインポートしましたが、それが必要か正しいかわかりませんか?これで、最終的にすべてのエラーを取り除き、例外がスローされなくなりましたが、画像を保存してロードしようとしても問題は何も起こりません。それ。また、未使用の検証可能ファイルがロードされていることを示す黄色の三角形も表示される ので、これのロイヤル ハッシュを作成した可能性がありますUIImage* thumImage NSString *appDocsDirectoryNSData *data

4

2 に答える 2

1

これは、私のプロジェクトの1つで行った方法です。

imagePickerController のデリゲート メソッドで画像を取得します。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    pictureInfo = info;
}

次に、次のように保存します。

-(void)createPin
{
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *pinFolderName = [NSString stringWithFormat:@"%f",[[NSDate date] timeIntervalSince1970]];
    NSString *pinFolderPath = [documentsDirectory stringByAppendingPathComponent:pinFolderName];
    [fileManager createDirectoryAtPath:pinFolderPath withIntermediateDirectories:YES attributes:nil error:NULL];
    self.fullsizePath = [pinFolderPath stringByAppendingPathComponent:@"fullsize.png"];
    NSString *mediaType = [pictureInfo objectForKey:UIImagePickerControllerMediaType];   
    if ([mediaType isEqualToString:@"public.image"]){
        UIImage *fullsizeImage = [pictureInfo objectForKey:UIImagePickerControllerEditedImage];
        NSData *fullsizeData = UIImagePNGRepresentation(fullsizeImage);
        [fullsizeData writeToFile:self.fullsizePath atomically:YES];
    }
}

そこから始めていただければ幸いです。説明やヘルプが必要な場合は、お気軽にお問い合わせください

于 2012-05-05T00:34:31.143 に答える
0

I have used NSuser defaults, all sorted

于 2012-05-05T12:04:27.340 に答える