2

編集:投稿の最後に解決策

NSCachesDirectory のサブディレクトリを作成し、そこに NSData オブジェクトを追加するのに問題があります。これに関連する複数の SO 投稿を参照しましたが、コードをデバッグすると、フォルダー内の NSData ファイルが存在しないことがわかります。私のコード:

NSURL *photoURL = [FlickrFetcher urlForPhoto:self.singlePhotoDictionary
                                          format:FlickrPhotoFormatLarge];
    NSData *URLToData = [NSData dataWithContentsOfURL:photoURL];

    NSString *cacheDirectory = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    NSString *newDirectory = [cacheDirectory stringByAppendingPathComponent:@"Photos"];

    BOOL isDir = NO;
    NSError *error;
    if (! [[NSFileManager defaultManager] fileExistsAtPath:newDirectory isDirectory:&isDir] && isDir == NO)
      {
        [[NSFileManager defaultManager]createDirectoryAtPath:newDirectory withIntermediateDirectories:NO attributes:nil error:&error];
      }

    NSString *filePath = [newDirectory stringByAppendingPathComponent:@"thePhotos.jpg"];
    NSLog(@"%@", filePath);

        //[URLToData writeToFile:filePath atomically:NO];
    [[NSFileManager defaultManager] createFileAtPath:filePath contents:URLToData attributes:nil];
    NSData *theData = [[NSFileManager defaultManager] contentsAtPath:filePath];
    NSArray *contentsInManager = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:newDirectory error:nil];

theData と contentsInManager は次のようになります。

theData NSData *    0x00000000

contentsInManager       NSArray *        0x00000000

ここで何か助けはありますか?サブディレクトリは存在しますが、ファイルはその中に作成されません。

補足質問: defaultManager を使用するのではなく、NSFileManager の独自のインスタンスを作成する必要があるのはいつですか?

前もって感謝します!

解決策: 試行錯誤の結果、サブディレクトリを削除して再作成してみました。一度やると、ファイルはサブディレクトリに書き込むことができました。

4

0 に答える 0