Как решить проблемы с предупреждением fileAttributesAtPath? - PullRequest
5 голосов
/ 26 января 2012

Теперь я использую этот код:

NSDictionary* attr = [[NSFileManager defaultManager] fileAttributesAtPath:file traverseLink:YES];

и получите предупреждение:

'fileAttributesAtPath:traverseLink:' is deprecated

Кто знает, что вместо этого использовать?

Спасибо!

Ответы [ 5 ]

8 голосов
/ 26 января 2012

Используйте attributesOfItemAtPath:error: вместо.

4 голосов
/ 26 января 2012

использование attributesOfItemAtPath:error:

NSError* error;
NSDictionary* attr = [[NSFileManager defaultManager] attributesOfItemAtPath:file error:&error];
1 голос
/ 11 ноября 2015

Принятый ответ забыл обработать traverseLink:YES из вопроса.

В улучшенном ответе используются attributesOfItemAtPath:error: и stringByResolvingSymlinksInPath:

NSDictionary* attr = [[NSFileManager defaultManager] attributesOfItemAtPath:[file stringByResolvingSymlinksInPath] error:nil];
0 голосов
/ 26 января 2012

вы должны прочитать документацию :

fileAttributesAtPath: traverseLink:

Возвращает словарь, описывающий атрибуты POSIX файла, указанного в данном задании. (устарело в Mac OS X v10.5. Используйте attributeOfItemAtPath: ошибка: .)

0 голосов
/ 26 января 2012

Особые замечания

Поскольку этот метод не возвращает информацию об ошибке, он устарел в Mac OS X v10.5. Используйте вместо этого setAttributes: ofItemAtPath: error:

ссылка

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