swift保留循环功能

qua*_*yen 2 function cycle retain swift

我想问一下在这种情况下保留周期是否发生:

func someFunc() {
    var aVar = SomeObj()
    funcWithClosure(something, completionHandler: { _ -> Void in
        aVar = SomeObj() // new
    })
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我从闭包中返回aVar.我只是想知道这是否会产生保留周期.如果是真的,我应该修复:

func someFunc() {
    var aVar = SomeObj()
    funcWithClosure(something, completionHandler: { [weak aVar] _ -> Void in
        aVar = SomeObj() // new
    })
}
Run Code Online (Sandbox Code Playgroud)

Ole*_*ann 5

不,它没有.封闭有一个强烈的参考aVar,但aVar没有提到封闭,所以没有循环.