Próbuję usunąć tylko ostatnią część adresu URL, to jest adres URL FTP.Usuń ostatnią porcję NSURL: iOS
Załóżmy, że mam adres URL typu:>ftp://ftp.abc.com/public_html/somefolder/. Po usunięciu ostatniej części powinienem mieć ją jako: ftp://ftp.abc.com/public_html/.
Próbowałem użyć stringByDeletingLastPathComponenet
i URLByDeletingLastPathComponent
, ale nie usuwają one ostatniej części poprawnie. Zmieniają cały wygląd adresu URL.
na przykład, po użyciu powyższych metod, tutaj jest format adresu URL, który otrzymuję ftp: /ftp.abc.com/public_html/. Usuwa jeden "/" w "ftp: //", który powoduje awarię mojego programu.
Jak można usunąć tylko ostatnią część bez naruszania reszty adresu URL?
UPDATE:
NSURL * stringUrl = [NSURL URLWithString:string];
NSURL * urlByRemovingLastComponent = [stringUrl URLByDeletingLastPathComponent];
NSLog(@"%@", urlByRemovingLastComponent);
Stosując powyższy kod, mam wyjścia jak: - ftp: /ftp.abc.com/public_html/
'-stringByDeletingLastPathComponent' rzeczywiście skraplać żadnych podwójnych ukośników. Dokumentacja dla niego wyraźnie mówi, że jest przeznaczona tylko dla ścieżek, a nie adresów URL! –
'-URLByDeletingLastPathComponent' spełnia swoje zadanie właściwie. Jedyne, co mogę zobaczyć dla powyższego przykładu kodu, aby wypisać 'ftp:/ftp.abc.com/public_html /', to jeśli dane wejściowe były w podobny sposób zniekształcone jak coś 'ftp:/ftp.abc.com/public_html/somefolder /' –
Szybka obserwacja: w systemie OS X 10.6 (i prawdopodobnie iOS 4) '-URLByDeletingLastPathComponent' powoduje podwójne ukośniki w części ścieżki. Próba usunięcia takiego komponentu prowadzi do dodawania '../' zamiast niego –