我在新的 swift 2.0 转换中遇到了一些问题。
我转换了我的应用程序,一切似乎都运行良好,但是,与 Web 服务器的连接完全停止了一起工作。
原始代码:
let tempstring: String? = "\(urlBase)"
let url = NSURL(string: tempstring!.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!)
var key: NSString?
key = NSString(contentsOfURL: url!, encoding: NSUTF8StringEncoding, error: nil)
临时字符串最终会成为http://www.zephyrpanthur.com/ --其他变量和子目录
转换做了:
let tempstring: String? = "\(urlBase)"
let url = NSURL(string: tempstring!.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!)
var error: NSError?
var key: NSString?
do {
key = try NSString(contentsOfURL: url!, encoding: NSUTF8StringEncoding)
print(key)
}
catch var error1 as NSError {
error = error1
print(error)
key = nil
}
基本上只是添加了一个 try/catch,这太棒了。但是,key
总是等于nil
。
我尝试了很多东西,最终发现如果我加载http://www.google.com它可以工作并加载该网站。我尝试使用 Yahoo、Facebook 和其他一些不是主要名称的页面,它们都有效。
当我回到 zephyrpanthur.com 时,它停止了工作。我什至尝试了我拥有的其他一些服务器,例如 8bitfox.com,但也没有用。我尝试使用和不www.
使用以及使用和不使用 ssl (https/http)
我自己的服务器上的任何东西似乎都被阻止了。这是非常离奇和奇怪的。我的 iPhone、iPad 和模拟器可以很好地加载这些页面,但它们不会加载到我的应用程序中......
该代码在操场上工作,只是不在我的应用程序中。我没有对网络做任何其他事情,在运行此代码之前,唯一发生的事情是对本地用户设置进行一些检查,以了解它是否应该自动登录,或者请求用户并输入密码。
错误消息类似于“无法打开 zepyrpanthur.com”或我在失败时使用的任何网站。
我希望这是 swift 2.0 的问题,而不是我的 Web 服务器的问题,但谁知道呢。也许现在需要 ssl 才能访问?虽然有些加载的网站不是 ssl,所以我不知道,有什么想法吗?