我正在尝试使用NSURL验证网址,但它对我不起作用.
func verifyUrl (urlString: String?) -> Bool {
if let urlString = urlString {
if let _ = NSURL(string: urlString) {
return true
}
}
return false
}
let ex1 = "http://google.com"
let ex2 = "http://stackoverflow.com"
let ex3 = "Escolas" // Not a valid url, I think
verifyUrl(ex1) // true
verifyUrl(ex2) // true
verifyUrl(ex3) // true
Run Code Online (Sandbox Code Playgroud)
我认为"Escolas"不能回归真实,我做错了什么?
我认为您缺少的是打开网址,UIApplication.sharedApplication().canOpenURL(url)例如,将您的代码更改为以下代码:
func verifyUrl (urlString: String?) -> Bool {
if let urlString = urlString {
if let url = NSURL(string: urlString) {
return UIApplication.sharedApplication().canOpenURL(url)
}
}
return false
}
Run Code Online (Sandbox Code Playgroud)
verifyUrl("escola") // false
verifyUrl("http://wwww.google.com") // true
Run Code Online (Sandbox Code Playgroud)
NSURL根据Apple的说法,构建者没有按照你的想法验证网址:
此方法期望
URLString仅包含正确形成的URL中允许的字符.所有其他字符必须正确转义百分比.使用UTF-8编码解释任何百分比转义字符
我希望这对你有帮助.