URLの最後の部分だけを削除しようとしています。そのFTP URLです。NSURLの最後の部分を削除します。iOS
たとえば、私は>ftp://ftp.abc.com/public_html/somefolder/のようなURLを持っています。最後の部分を削除した後、私はそれを持っているはずです:ftp://ftp.abc.com/public_html/。
私はstringByDeletingLastPathComponenet
とURLByDeletingLastPathComponent
を使ってみましたが、最後の部分を正しく削除しませんでした。彼らはURLの全体の外観を変更します。
たとえば、上記の方法を使用した後、私はftp:/ftp.abc.com/public_html/というURL形式を使用します。私のプログラムをクラッシュさせている "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'は、パス部分の二重スラッシュを誤って処理します。そのようなコンポーネントを削除しようとすると、代わりに '../'が追加されます –