Swift NSURLSession | Xcode 6.1

时间:2014-11-04 21:26:51

标签: ios xcode url swift osx-yosemite

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))

    }

1 个答案:

答案 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))
    }
}