NSCachesDirectory не каталог в моей файловой системе - PullRequest
7 голосов
/ 10 августа 2011

Я пытаюсь что-то сохранить в своей папке «Кэши» в приложении для iPad.

    NSArray* cachePathArray = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    NSString* cachePath = [cachePathArray lastObject];

И когда я распечатываю возвращенный путь к файлу, я получаю:

/ Пользователи / Gela / Библиотека / Поддержка приложений / iPhone Simulator / 5,0 / Применения / 3FF7EB1A-49A9-4B13-ADC4-DF0662BA724B / Библиотека / кэши

Однако, когда я перехожу к этой папке на жестком диске, «Кэши» - это не папка, а расплывчатый файл «документа».

Есть идеи, почему это не папка и как я могу записать в кэш?

1 Ответ

13 голосов
/ 10 августа 2011

Возможно Simulator не имеет Caches реж. Вы попробуйте это на устройстве ...

Вы можете получить доступ к каталогу Caches следующим образом. Я использую этот метод для получения данных файла ...

- (NSString *)getFileData: (NSString *)fileDirPath
{
    NSArray *myPathList = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    NSString *myPath    = [myPathList  objectAtIndex:0];
    NSError *err        = nil;
    NSString *fData     = @"";

    myPath = [myPath stringByAppendingPathComponent:fileDirPath];
    if([[NSFileManager defaultManager] fileExistsAtPath:myPath])
    {
        fData = [NSString stringWithContentsOfFile:myPath encoding:NSUTF8StringEncoding error:&err];
        if(err) NSLog(@"getFileData() - ERROR: %@",[err localizedDescription]);
    }
    else
    {
        NSLog(@"getFileData() - ERROR: This file '%@' does not exist",myPath);
    }
    return fData;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...