Sto tentando di rimuovere solo l'ultima parte dell'URL, È un URL FTP.Rimuovi l'ultima porzione di NSURL: iOS
Supponiamo, Ho un URL come:>ftp://ftp.abc.com/public_html/somefolder/. Dopo aver rimosso l'ultima porzione dovrei averlo come: ftp://ftp.abc.com/public_html/.
Ho provato a utilizzare stringByDeletingLastPathComponenet
e URLByDeletingLastPathComponent
, ma non rimuovono correttamente l'ultima porzione. Cambiano l'intero aspetto dell'URL.
per esempio, dopo aver usato i metodi sopra indicati, ecco il formato URL ottengo ftp: /ftp.abc.com/public_html/. Rimuove uno "/" in "ftp: //", che sta bloccando il mio programma.
Come è possibile rimuovere solo l'ultima parte senza disturbare il resto dell'URL?
UPDATE:
NSURL * stringUrl = [NSURL URLWithString:string];
NSURL * urlByRemovingLastComponent = [stringUrl URLByDeletingLastPathComponent];
NSLog(@"%@", urlByRemovingLastComponent);
Utilizzando sopra il codice, ottengo l'uscita come: - ftp: /ftp.abc.com/public_html/
'-stringByDeletingLastPathComponent' sarà infatti condensare eventuali doppie barre. La documentazione per questo fa esplicitamente notare che è destinato solo per i percorsi, e non per gli URL, però! –
'-URLByDeletingLastPathComponent' funziona correttamente. L'unico che posso vedere per il tuo esempio di codice precedente per l'output di 'ftp:/ftp.abc.com/public_html /' è se l'input fosse malformato in modo simile a qualcosa come 'ftp:/ftp.abc.com/public_html/somefolder /' –
Seguito rapido: si verifica su OS X 10.6 (e presumibilmente su iOS 4) '-URLByDeletingLastPathComponent' gestisce erroneamente le doppie barre nella porzione del percorso. Cercando di rimuovere un componente di questo tipo, si aggiunge invece '../' –