+[NSURL URLWithString:]
を呼び出すとき、私は私のURLを構築するための2つのオプションがあります。- [NSString stringByAppendingPathComponent:]またはNSStringsのNSStringsの[NSString stringByAppendingFormat:]のみですか?
[[@"http://example.com" stringByAppendingPathComponent:@"foo"] stringByAppendingPathComponent:@"bar"]
または
[@"http://example.com" stringByAppendingFormat:@"/%@/%@",@"foo",@"bar"];
-[NSString stringByAppendingPathComponent:]
は、より正しい答えのように思えるが、私は二重スラッシュを扱うほか-[NSString stringByAppendingFormat:]
を使って何かを失うん次の場合は?
// http://example.com/foo/bar
[[@"http://example.com/" stringByAppendingPathComponent:@"/foo"] stringByAppendingPathComponent:@"bar"]
// http://example.com//foo/bar oops!
[@"http://example.com/" stringByAppendingFormat:@"/%@/%@",@"foo",@"bar"];
'stringByAppendingPathComponent'は、理論的には、使用されますが"システムパスセパレーター"とあなたのフォーマットに配線されたパスセパレーターを比較すると、あなたのコードは(わずかに)システムに依存しなくなります。もちろん、Objective-CはWindozeではあまり一般的ではありませんので、大きな問題ではありません。 –