Json 初始化前捕获变量,迁移到Swift 2后出错

Json 初始化前捕获变量,迁移到Swift 2后出错,json,initialization,migration,nsdictionary,swift2,Json,Initialization,Migration,Nsdictionary,Swift2,在将代码迁移到swift 2之后,我遇到了一个问题(我对swift和iOS编程都是新手,所以这可能是一个愚蠢的错误) 由于Swift 2中的错误处理,我为数据检索添加了“do,try,catch”子句: 之前: jsonData: NSDictionary = NSJSONSerialization.JSONObjectWithData(urlData!, options:NSJSONReadingOptions.MutableContainers) as? NSDictionary}

在将代码迁移到swift 2之后,我遇到了一个问题(我对swift和iOS编程都是新手,所以这可能是一个愚蠢的错误)

由于Swift 2中的错误处理,我为数据检索添加了“do,try,catch”子句:

之前:

jsonData: NSDictionary = NSJSONSerialization.JSONObjectWithData(urlData!,
    options:NSJSONReadingOptions.MutableContainers) as? NSDictionary} 
之后:

do{
    try jsonData = NSJSONSerialization.JSONObjectWithData(urlData!,
    options:NSJSONReadingOptions.MutableContainers) as? NSDictionary} 

catch let errorParsing as NSError
     {errorParsing.description}


let success:NSInteger = jsonData!.valueForKey("success") as! NSInteger
但是现在每次我尝试访问jsonData对象(最后一行代码中的示例)时,我都会得到一个错误“变量在初始化之前被闭包捕获”

有人能告诉我如何解决这个问题吗?我尝试使用“init()”,但没有成功

提前感谢你的帮助

PS:我知道这里的其他一些人已经发布了一个关于相同错误的问题,但是没有一个包含我可以使用的信息/修复


Kr,

do{}
中使用jsonData

do{
    let try jsonData = NSJSONSerialization.JSONObjectWithData(urlData!,
    options:NSJSONReadingOptions.MutableContainers) as? NSDictionary
} 

   let success:NSInteger = jsonData!.valueForKey("success") as! NSInteger

catch let errorParsing as NSError
     {errorParsing.description}

现在不需要声明额外的NSError变量。您可以这样放置代码:

do{
    try jsonData = NSJSONSerialization.JSONObjectWithData(urlData!,
    options:NSJSONReadingOptions.MutableContainers) as? NSDictionary} 

catch {
    fatalError(error)
}

谢谢你的帮助!我从代码中删除了NSError变量。谢谢你的帮助!当我在try子句前面添加“let”时,仍然出现了一个错误,但我将do、try、catch更改为代码中的更高级别,现在它工作得很好。