В macOS 10.12 NSURLCanonicalPathKey
добавлено к NSURL
. В документации говорится:
Путь URL как канонический абсолютный путь к файловой системе.
Кроме этого, единственная другая документация / информация, которую я видел, это из поста Swift Forum , в котором говорится:
Возможно, вы захотите взглянуть на .canonicalPathKey (NSURLCanonicalPathKey). На платформах Apple существует множество стандартных путей UNIXy в / private / с соответствующими символическими ссылками из корня. Так что / etc / на самом деле / private / etc /. Если вы не канонизируете пути, это может привести вас в замешательство.
Мне кажется, это довольно большое дело, но я удивлен, что это было введено только в 10.12. Я когда-либо полагался только на NSURLPathKey
, .path
или данные закладок для разрешения URL-адресов, и никогда не имел проблемы .
Должен ли я теперь использовать канонический путь везде, где раньше
стандартное значение пути?
Если я храню информацию о пути в базе данных в виде строки, я должен
сохранить значение .path
или NSURLCanonicalPathKey
?
Если я преобразую NSURL
в строковое представление для использования в библиотеке C / C ++, для которой требуется путь к файлу, следует ли мне использовать представление канонического пути?
Если вы отображаете путь к файлу для пользователя, следует ли указывать канонический путь?
Как NSURLCanonicalPathKey
сравнивается с URLByStandardizingPath
и URLByResolvingSymlinksInPath
, которые, кажется, делают то же самое или противоположное ... (?)
Это на macOS 10.14, и я рассматриваю только те URL-адреса, которые указывают на файлы или папки. Мне известно, что данные закладок, вероятно, следует хранить в базе данных, а не в путях.