Ios 闭包语法中的Swift weakSelf

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而不是注释行时,编译

我有以下代码来获取JSON:

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。关于这个话题的好文章:

谢谢!链接也是如此。