Ich versuche nur den letzten Teil der URL zu entfernen, ist es eine FTP-URL.Entfernen Sie den letzten Teil der NSURL: iOS
Angenommen, ich habe eine URL wie:>ftp://ftp.abc.com/public_html/somefolder/. Nach dem Entfernen der letzten Portion sollte ich es haben: ftp://ftp.abc.com/public_html/.
Ich habe versucht mit stringByDeletingLastPathComponenet
und URLByDeletingLastPathComponent
, aber sie entfernen nicht den letzten Teil korrekt. Sie ändern das gesamte Aussehen der URL.
zum Beispiel, nach der Verwendung der oben genannten Methoden, hier ist das URL-Format ich bekomme ftp: /ftp.abc.com/public_html/. Es entfernt ein "/" in "ftp: //", was mein Programm zum Absturz bringt.
Wie ist es möglich, nur den letzten Teil zu entfernen, ohne den Rest der URL zu stören?
UPDATE:
NSURL * stringUrl = [NSURL URLWithString:string];
NSURL * urlByRemovingLastComponent = [stringUrl URLByDeletingLastPathComponent];
NSLog(@"%@", urlByRemovingLastComponent);
obigen Code verwenden, erhalte ich die Ausgabe als: - ftp: /ftp.abc.com/public_html/
'-stringByDeletingLastPathComponent' wird in der Tat keine doppelte Schrägstriche kondensieren. Die Dokumentation dafür ruft ausdrücklich darauf hin, dass es nur für Pfade und nicht für URLs gedacht ist! –
'-URLByDeletingLastPathComponent' erledigt seine Aufgabe jedoch richtig. Das einzige, das ich für das obige Codebeispiel sehen kann, um 'ftp:/ftp.abc.com/public_html /' auszugeben, ist, wenn die Eingabe in ähnlicher Weise falsch formatiert wurde, wie etwa 'ftp:/ftp.abc.com/public_html/somefolder/' –
Kurzes Followup: Unter OS X 10.6 (und vermutlich iOS 4) tritt '-URLByDeletingLastPathComponent' auf und behandelt doppelte Schrägstriche im Pfadbereich. Der Versuch, eine solche Komponente zu entfernen, führt dazu, dass "../" stattdessen angefügt wird. –