Value of optional type 'NSURL?' not unwrapped; did you mean to use '!' or '?'?
当我输入"!"
或"?"
时,我的应用无法构建。
此代码适用于小牛队,但自从我更新为 Yosemite 后,我收到了错误消息。
我相信它的语法错误,但我找不到解决方案。
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
var url = NSURL(string: "http://www.stackoverflow.com")
let task = NSURLSession.sharedSession().dataTaskWithURL(url) {(data, response, error) in
println(NSString(data: data, encoding:NSUTF8StringEncoding))
}
答案 0 :(得分:0)
这不是Yosemite的问题,而是升级到Xcode 6.1
NSURL
初始化程序属于可用类型,这意味着如果作为字符串传递的url格式错误,它可以返回nil
。因此,您必须检查不是nil
和解包,您可以使用可选绑定来执行此操作:
var url = NSURL(string: "http://www.stackoverflow.com")
if let url = url { // << Optional binding
let task = NSURLSession.sharedSession().dataTaskWithURL(url) {(data, response, error) in
println(NSString(data: data, encoding:NSUTF8StringEncoding))
}
}