当前位置:  开发笔记 > IOS > 正文

弱自我与弱自我的区别()

如何解决《弱自我与弱自我的区别()》经验,为你挑选了1个好方法。

[weak self]作为一个参数传递给一个闭包与传递有什么区别[weak self] ()

例如 :

dispatch_async(dispatch_get_main_queue()) { [weak self] in 
     //Some code here
}

V/S

dispatch_async(dispatch_get_main_queue()) { [weak self] () -> Void in
     //Some code here
}

Martin R.. 9

您不[weak self] ()作为参数传递给闭包.

[weak self]是一个捕获列表,并在之前

参数列表/返回类型声明() -> Void

在闭包表达式中.

如果可以从上下文中推断出返回类型或者参数列表和返回类型,则可以省略它们,因此所有这些都是有效且完全等效的:

dispatch_async(dispatch_get_main_queue()) { [weak self] () -> Void in 
    self?.doSomething()
}

dispatch_async(dispatch_get_main_queue()) { [weak self] () in 
    self?.doSomething()
}

dispatch_async(dispatch_get_main_queue()) { [weak self] in 
    self?.doSomething()
}

闭包采用空参数列表()并具有Void 返回类型.



1> Martin R..:

您不[weak self] ()作为参数传递给闭包.

[weak self]是一个捕获列表,并在之前

参数列表/返回类型声明() -> Void

在闭包表达式中.

如果可以从上下文中推断出返回类型或者参数列表和返回类型,则可以省略它们,因此所有这些都是有效且完全等效的:

dispatch_async(dispatch_get_main_queue()) { [weak self] () -> Void in 
    self?.doSomething()
}

dispatch_async(dispatch_get_main_queue()) { [weak self] () in 
    self?.doSomething()
}

dispatch_async(dispatch_get_main_queue()) { [weak self] in 
    self?.doSomething()
}

闭包采用空参数列表()并具有Void 返回类型.

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有