Swift XCTest启动代码返回false let x = NSURL(string:urlString)

时间:2015-03-30 13:16:50

标签: xcode swift swift-playground

在swift Playground中,以下代码按预期工作,并设置了url并执行了if子句:

let query1 = "https://api.stackexchange.com/2.2/search?queryRemoved";

if let url = NSURL(string: query1)
{
    println("Unwrapped url: [\(url)]") // Executes
}

在应用程序中,代码也可以正常工作。但是,在运行调用相同代码的XCTest的xCode中,它失败了:

    func requestQuestionsForPage(iPage: Int)
    {
        let query1 = "https://api.stackexchange.com/2.2/search?queryRemoved";

        if let url = NSURL(string: query1)  // Evaluates to false???
        {
            let urlRequest = NSURLRequest(URL: url)
            let task = urlSession.dataTaskWithRequest(urlRequest, completionHandler: questionsHandler)
            task.resume()
        }
}

更改为第一个设置作为可选项然后测试值,它可以工作:

    func requestQuestionsForPage(iPage: Int)
    {
        let query1 = "https://api.stackexchange.com/2.2/search?queryRemoved";

        let url = NSURL(string: query1)
        if (url != nil)
        {
            let urlRequest = NSURLRequest(URL: url!) // Unwrap here
        }
    }

我显然在这里遗漏了一些东西。谁能告诉我为什么我会看到这种行为?

0 个答案:

没有答案