Какао Ошибка 513 при попытке записи в нормальные каталоги - PullRequest
0 голосов
/ 01 апреля 2011

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

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, NO);
    NSString *cacheDirectory = [paths objectAtIndex:0];
    NSLog(@"Found cache directory: %@", cacheDirectory);
    NSString *fileName = [cacheDirectory stringByAppendingPathComponent:@"987f065e4656dba6c"];
    NSString *userData = [[NSString alloc] initWithFormat:@"%@\n%@\n%@", owner.schoolWebsite.text, owner.username.text, owner.password.text];
    NSError *fileError = nil;
    if(!([[NSFileManager defaultManager] createDirectoryAtPath:cacheDirectory withIntermediateDirectories:YES attributes:nil error:&fileError]))
    {
        NSLog(@"Error creating cache directory: %@\n%@\n%@\n%@", [fileError localizedDescription], [fileError localizedFailureReason], [fileError localizedRecoveryOptions], [fileError localizedRecoverySuggestion]);
    }        
    if (!([[NSFileManager defaultManager] createFileAtPath:fileName contents:[userData dataUsingEncoding:NSASCIIStringEncoding] attributes:nil] ) )

    {
        NSLog(@"ERROR WRITING TO FILE: %@\n%@\n%@\n%@", [fileError localizedDescription], [fileError localizedFailureReason], [fileError localizedRecoveryOptions], [fileError localizedRecoverySuggestion]);
    }

это мучило меня некоторое время, и это не работает только на устройстве

1 Ответ

2 голосов
/ 01 апреля 2011

Попробуйте заменить это:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, NO);

с этим:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);

Я заменил NSLibraryDirectory (/ Library) на NSCachesDirectory (/ Library / Cache). Также обозначено расширение тильды до полного пути, что, вероятно, является основной причиной этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...