最佳答案
Swift 1.2中有一个新属性,函数中有闭包参数,正如文档所说:
这表明 参数只被调用(或作为 @ 调用中的 noescape 参数) ,这意味着它不能 比电话寿命长。
据我所知,在此之前,我们可以使用 [weak self]
不让闭包有一个强引用,例如它的类,并且在执行闭包时,self 可以是 nil 或者实例,但是现在,@noescape
意味着如果类被去初始化,闭包将永远不会被执行。我没理解错吧?
如果我是对的,为什么我要使用 @noescape
闭包而不是常规函数,它们的行为非常相似?