2011-12-06 14 views
4

ファイルシステムのパスがある場合は、stringByResolvingSymlinksInPathセレクタを使用して、 ".."を削除して(前のパスコンポーネントも削除する)ことができます。どのように私はURLのために同じことを達成することができますか?たとえば私は、から始めると言う:URLの文字列表現から ".."を削除します

私はに変換必要
www.example.com/themes/themeA/../common/assetA.png 

:NSURLメソッドを使用するURLについて

www.example.com/themes/common/assetA.png 

答えて

7

- (NSURL *)standardizedURL 

は、そのポイントの新しいURLを返します。元のURLと同じリソースに移動し、絶対パスです。

例:

NSString *s = @"www.example.com/themes/themeA/../common/assetA.png"; 
NSURL *u = [NSURL URLWithString:s]; 
NSURL *su = [u standardizedURL]; 
NSLog(@"su: %@", su); 

のNSLog出力:何の後、約

su: www.example.com/themes/common/assetA.png 
2

NSString* resolved_url 
    = [[[NSURL URLWithString: @"www.example.com/themes/themeA/../common/assetA.png"] standardizedURL] absoluteString]; 

あなたの代わりにNSStringNSURLをしたい場合は、absoluteStringへの呼び出しを削除します。

+0

ああ、正しい。それは 'standardizedURL'です。固定答え。指摘してくれてありがとう。 – Krizz

関連する問題