0

こんにちは私は画像をディレクトリに保存したいのですが、NSDataを渡して、作成したディレクトリにファイルを保存すると思われることを実行しますが、問題は保存されないことです。これは私がこれまでに持っているものです。なぜ機能しないのinitWithContentsOfURL:encoding:error:ですか、nullを返しますが、私が使用した他のメソッドは機能しますか?主な問題はWRITETOURL、0を返すことです。これは、情報が適切に保存されなかったことを意味すると思います。ヒントはありますか?

     NSFileManager *fm = [[NSFileManager alloc] init];
        NSArray * directoryPaths = [fm URLsForDirectory:NSCachesDirectory inDomains:NSUserDomainMask];
        NSLog(@"%@", directoryPaths);
        NSURL* dirPath = nil;    
        dirPath = [[directoryPaths objectAtIndex:0] URLByAppendingPathComponent:[NSString stringWithFormat:@"photos.jpeg"]];
       NSError* theError = nil;
       [fm createDirectoryAtURL:dirPath withIntermediateDirectories:YES attributes:nil error:&theError];

    UIImage* photoToStore = [UIImage imageWithData:photoToSave];

    NSString *pathContainingPhoto = [[NSString alloc] initWithFormat:@"%@.jpeg", UIImageJPEGRepresentation(photoToStore, 1.0)];
    NSError *error = nil;


    BOOL OK = [pathContainingPhoto writeToURL:dirPath atomically:YES encoding:NSUTF8StringEncoding error:&error];

    NSLog(@"OK = %d", OK); //Returns 0
    NSLog(@"%@", dirPath);

    //WHY DOESNT THIS VERSION WORK?
    // NSString *pathToFile = [[NSString alloc] initWithContentsOfURL:dirPath encoding:NSUTF8StringEncoding error:&error];
    NSLog(@"%@", pathToFile);

      NSString* pathToFile = [NSString stringWithContentsOfURL:dirPath encoding:nil error:nil];
    NSArray *dirContents = [fm contentsOfDirectoryAtPath:pathToFile error:nil];
    NSLog(@"%@", dirContents);
4

1 に答える 1

0

このようにして、.hファイルのint countを実行し、その初期値count=0を設定します。viewDidLoadで:

NSString *stringPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:[NSString stringWithFormat:@"Image_%d.png",count];
error = nil;
if (![[NSFileManager defaultManager] fileExistsAtPath:stringPath]) // removing item it already exuts
{
   [[NSFileManager defaultManager] removeItemAtPath:stringPath error:&error];
}

if(photoToSave) // nsdata of image that u have
{
  [photoToSave writeToFile:stringPath atomically:YES];
}
count++; // maintaining count of images
于 2012-08-17T04:41:26.067 に答える