Преобразовать NSString, содержащую URL, в POSIX-путь

#objective-c #cocoa #nsstring #nspathcontrol

#objective-c #cocoa #nsstring #nspathcontrol

Вопрос:

Я работаю над извлечением пути POSIX к папке или файлу из NSPathControl после удаления файла или папки в него.

Я новичок, но мне удалось получить значение из элемента управления (вызываемого Destination ) в моем коде таким образом:

 NSString *filepath;
filepath = [Destination stringValue];
  

Это дает мне что-то вроде

файл://test/My New Project/

но я хотел бы иметь это в форме POSIX path:

/ тест / Мой новый проект

потому что мне нужно передать его в NSTask запущенную программу командной строки.

Есть предложения о том, как преобразовать содержимое этого NSString из формата URL в путь POSIX?

Ответ №1:

Используйте -URL вместо -stringValue . Это вернет NSURL объект, представляющий путь, отображаемый элементом управления path. Затем вы можете отправить -path в NSURL объект, чтобы получить его строковое представление без схемы URL / экранирования. Например:

 NSURL *fileURL = [Destination URL];
NSString *filepath = [fileURL path];
  

или

 NSString *filepath = [[Destination URL] path];
  

Комментарии:

1. Сработало отлично, Баварий, спасибо!! Этот веб-сайт — это всегда действительно единственное место в Интернете для всех программистов!