Создание каталога - что заменяет createDirectoryAtPath?
В моей программе есть следующая строка кода, которую я взял из четвертого издания книги Стивена Г. Кочана "Программирование в Objective-C":
[fileManager createDirectoryAtPath:DATABASE_DIRECTORY attributes:nil];
Примечание: fileManager - это моя переменная fm, а DATABASE_DIRECTORY - это #define моего пути.
Хотя он отлично работает (я использую OSX 10.6.8), каждый раз, когда я компилирую, мне напоминают, что:
"createDirectoryAtPath:attributes:" is deprecated
Я просмотрел справочный документ для файлового менеджера, и это немного ошеломляет новичка в программировании какао. Несмотря на это, этот конкретный метод больше не указан в единственных справочных документах файлового менеджера, которые я смог найти (https://developer.apple.com/library/mac/#documentation/Carbon/Reference/File_Manager/Reference/reference.html). даже не указан как "устарел". Это просто не там вообще.
Ясно, что это все еще работает, но очевидно, что идея состоит в том, чтобы использовать другой и более современный способ создания каталога (я заметил, что ссылка filemanager является ссылкой Carbon vs. Cocoa. Я еще не пробовал запускать это на Lion, чтобы увидеть, это все еще работает.)
Есть ли прямая замена для этого устаревшего метода?
Если нет, то пытается ли Apple покончить с именами путей и полностью переключиться на Unicode? (Простите, если я немного запутался в этом вопросе и терминологии... Я не писал код с конца 80-х...) В прошлом я никогда не использовал Unicode ни для чего, поэтому я не знаю, где начать.
Если кто-то может порекомендовать хороший текущий учебник по Unicode и / или программному коду для чтения / записи файлов в Какао, это будет очень цениться!
1 ответ
То, что делает Apple, это уход от путей к URL-адресам - я не знаю, пойдут ли они до конца, но кажется, что они действительно обесценивают довольно много методов пути в пользу URL-методов. Замена для createDirectoryAtPath:attribute: is createDirectoryAtURL:withIntermediateDirectories:attribute: error:
Я не уверен, почему вы не можете найти это в документах, если вы ищете createDirectoryAtPath:attribute: он приводит вас к устаревшим методам и в этой ссылке указывает на замену.