Какао contentsOfDirectoryAtPath: метод с ошибкой для определенных пользователей - Mac OS X - PullRequest
3 голосов
/ 30 марта 2010

Вот фрагмент кода:

// Get into the data folder of it
keychainPath = [keychainPath stringByAppendingPathComponent:@"data/default"];

DLog(@"Keychain data path: %@", keychainPath);

// Define Filemanager
NSFileManager *fm = [NSFileManager defaultManager];

// Catch any errors
NSError *dataError = nil;

// get all the files in the directory
NSArray *dataFiles = [fm contentsOfDirectoryAtPath:keychainPath error:&dataError];

if(!dataFiles)
 NSLog(@"Error: %@",dataError);

Теперь это прекрасно работает для большинства людей, но некоторые из них сообщили о проблемах с объектом dataError:

  Error: Error
Domain=NSCocoaErrorDomain Code=260 UserInfo=0x14d1fa10 "The folder
“default” doesn’t exist." Underlying Error=(Error
Domain=NSOSStatusErrorDomain Code=-43 "The operation couldn’t be
completed. (OSStatus error -43.)" (File not found))

Люди, столкнувшиеся с этой проблемой, сказали, что файл / папка 'default' СУЩЕСТВУЕТ именно там, где и должен быть, поэтому я не знаю, почему это не работает.

Любая помощь будет оценена!

1 Ответ

3 голосов
/ 01 апреля 2010

Спасибо, Питер, keychainPath был просто какой-то строкой вроде '~ / Library / etc.etc.'

Чтобы ответить на мой собственный вопрос:

Оказывается, проблема заключалась в том, что некоторые пользователи Mac OS X не понимали тильду (~)

Используя метод

[keychainPath stringByExpandingTildeInPath];

Как только это было сделано, проблема была решена.

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

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