Ios 闭包语法中的Swift weakSelf
我有以下代码来获取JSON:Ios 闭包语法中的Swift weakSelf,ios,swift,closures,Ios,Swift,Closures,我有以下代码来获取JSON: Alamofire.request(.GET, worlds).responseJSON { (request, response, JSON, error) in println(JSON) //weakSelf.serverList = JSON } 如何在这里声明weakSelf?我知道在我的例子中它应该是无主的,但是我找不到正确的语法。当我尝试使用[unowned self].serverList而不是注释行时,编译
Alamofire.request(.GET, worlds).responseJSON { (request, response, JSON, error) in
println(JSON)
//weakSelf.serverList = JSON
}
如何在这里声明weakSelf?我知道在我的例子中它应该是无主的,但是我找不到正确的语法。当我尝试使用[unowned self].serverList而不是注释行时,编译器会显示错误“使用未解析标识符‘unowned’”。
我还尝试在块之前声明常量,如下所示:
unowned let uSelf = self
它就像一个符咒,但我想知道如何在我的情况下使用[无主的自我] 您可以通过在闭包参数之前放置
[弱自我]
来声明弱自我引用
您可以看到使用捕获列表。正确的语法是:
Alamofire.request(.GET, worlds).responseJSON { [unowned self] (request, response, JSON, error) in
println(JSON)
self.serverList = JSON
}
但是请注意,您并没有在此处创建retain cycle,因此您不必在此处使用
weak
或unowned
self。关于这个话题的好文章:谢谢!链接也是如此。