Я пытаюсь удалить только последнюю часть URL-адреса, его URL-адрес FTP.Удалить последнюю часть NSURL: iOS
Предположим, у меня есть URL-адрес:>ftp://ftp.abc.com/public_html/somefolder/. После удаления последней части я должен иметь ее как: ftp://ftp.abc.com/public_html/.
Я пробовал использовать stringByDeletingLastPathComponenet
и URLByDeletingLastPathComponent
, но они не удаляют последнюю часть правильно. Они меняют весь внешний вид URL-адреса.
например, после использования вышеуказанных методов, вот формат URL, который я получаю ftp: /ftp.abc.com/public_html/. Он удаляет один «/» в «ftp: //», что приводит к сбою моей программы.
Как можно удалить только последнюю часть, не нарушая остальную часть URL-адреса?
UPDATE:
NSURL * stringUrl = [NSURL URLWithString:string];
NSURL * urlByRemovingLastComponent = [stringUrl URLByDeletingLastPathComponent];
NSLog(@"%@", urlByRemovingLastComponent);
Используя выше код, я получаю выход, как: - FTP: /ftp.abc.com/public_html/
'-stringByDeletingLastPathComponent' действительно конденсируются любые двойные слеши. В документации для него явно указано, что он предназначен только для путей, а не для URL-адресов! –
'-URLByDeletingLastPathComponent' выполняет свою работу должным образом. Единственное, что я вижу для вашего вышеприведенного образца кода для вывода 'ftp:/ftp.abc.com/public_html /', - это то, что вход аналогично искажен как нечто вроде 'ftp:/ftp.abc.com/public_html/somefolder /' –
Быстрое наблюдение: получается на OS X 10.6 (и, предположительно, iOS 4) '-URLByDeletingLastPathComponent' пропускает двойные слэши в части пути. Попытка удалить такой компонент приводит к добавлению «../» –