Являются ли эти два способа получения эквивалентного пути к файлу? - PullRequest
0 голосов
/ 25 июня 2011
NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
return [[pathArray objectAtIndex:0] stringByAppendingPathComponent:@"data.plist"];

и

return [[NSBundle mainBundle] pathForResource:@"data" ofType:@"plist"];

файл хранится в папке моих документов.

Ответы [ 2 ]

3 голосов
/ 25 июня 2011

Нет, это не так.Первый возвращает путь к файлу с именем data.plist в каталоге документов приложения, второй возвращает путь к файлу с именем data.plist в комплекте приложения, где находятся все ресурсы приложения, исполняемый файл и т. Д.

2 голосов
/ 25 июня 2011

Из документации для NSSearchPathForDirectoriesInDomains

Создает список строк пути для указанных каталогов в указанных доменах.Список в порядке, в котором вы должны искать в каталогах.Если для параметра expandTilde задано значение YES, тильды раскрываются, как описано в stringByExpandingTildeInPath.

Из документации для метода NSBundle pathForResource:ofType:

Сначала метод ищет соответствующий файл ресурсов в нелокализованном каталоге ресурсов указанного пакета.(В Mac OS X этот каталог обычно называется «Ресурсы», но в iOS это основной каталог комплекта.) Если соответствующий файл ресурсов не найден, он просматривается на верхнем уровне любого доступного «.lproj» для конкретного языка.каталоги.(Порядок поиска для языковых каталогов соответствует предпочтениям пользователя.) Он не просматривается через другие подкаталоги ни в одном из этих мест.

Поэтому первый ищет файлы в каталоге, ипоследний выглядит в связке.Они могут не совпадать.

...