のスキームを変更する簡単な方法はありNSURL
ますか?私はそれNSURL
が不変であることを認識しています。私の目標は、URLのスキームを、がリンクされている場合は「https」にSecurity.framework
、フレームワークがリンクされていない場合は「http」に変更することです。フレームワークがリンクされているかどうかを検出する方法を知っています。
このコードは、URLにパラメーター( "?param1 = foo&param2 = bar"など)がない場合にうまく機能します。
+(NSURL*)adjustURL:(NSURL*)inURL toSecureConnection:(BOOL)inUseSecure {
if ( inUseSecure ) {
return [[[NSURL alloc] initWithScheme:@"https" host:[inURL host] path:[inURL path]] autorelease];
}
else {
return [[[NSURL alloc] initWithScheme:@"http" host:[inURL host] path:[inURL path]] autorelease];
}
}
ただし、URLにパラメータがある場合は、[inURL path]
それらを削除します。
URL文字列を自分で解析する以外の提案はありますか(これは実行できますが、実行しないようにしたい)?このメソッドにhttpまたはhttpsのいずれかでURLを渡すことができるようにするために何をしますか。