【发布时间】:2016-04-20 13:49:45
【问题描述】:
我正在尝试使用完成处理程序将数据存储在 dataTaskWithUrl 之外以与其他方法一起使用。
这是我的代码:
import UIKit
import XCPlayground
XCPSetExecutionShouldContinueIndefinitely(true)
let session = NSURLSession(configuration: NSURLSessionConfiguration.defaultSessionConfiguration())
var jsonData : NSDictionary
let urlString = "<my_rest_api>"
session.dataTaskWithURL(NSURL(string: urlString)!, completionHandler: {
(taskData, taskResponse, taskError) -> Void in
var jsonReadError: NSError?
var jsonResult = try! NSJSONSerialization.JSONObjectWithData(taskData!, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary
var resp=jsonResult["response"] as! String
var data: NSData = resp.dataUsingEncoding(NSUTF8StringEncoding)!
var jsonResultNested = try! NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers) as! NSArray
dispatch_async(dispatch_get_main_queue(), {
jsonData = jsonResultNested[0] as! NSDictionary
})
}).resume()
当我在外面打印jsonData 时,它说
错误:变量“jsonData”在初始化之前使用
如何使用完成处理程序做到这一点?
【问题讨论】: