在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
}
}
我显然在这里遗漏了一些东西。谁能告诉我为什么我会看到这种行为?