有没有简单的方法来改变 a 的方案NSURL
?我确实意识到这NSURL
是不可变的。我的目标是将 URL 的方案更改为“https”(如果Security.framework
已链接),如果未链接框架则更改为“http”。我确实知道如何检测框架是否已链接。
如果 URL 没有参数(例如“?param1=foo¶m2=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 传递给此方法。