iOS Swift : Closures (Callbacks) versus Delegates, 什么时候使用哪个?

标签 ios swift callback delegates closures

<分区>

就简单的逻辑关联而言,我个人更喜欢在 Swift 中使用回调而不是委托(delegate),因为它非常简单易懂。同时,有些人更喜欢委托(delegate),因为委托(delegate)是其他语言(例如 C#)中的一种流行模式。

网上有一些讨论:

<强>1。 “为什么不应该在 Swift 中使用委托(delegate)?” https://medium.cobeisfresh.com/why-you-shouldn-t-use-delegates-in-swift-7ef808a7f16b#.hqb7zrc1v

<强>2。苹果正在将注意力更多地转移到回调模式上 https://www.reddit.com/r/swift/comments/2ces1q/closures_vs_delegates/

<强>3。区 block 还是委托(delegate)? http://blog.stablekernel.com/blocks-or-delegates/

阅读这些讨论后,我仍未决定偏好。 我想知道什么时候使用闭包更好,什么时候使用委托(delegate)更好?和原因?

谢谢!

最佳答案

(基于意见的问题的基于意见的答案)

问题不应该是哪个更好,而应该是我要解决的问题的最佳解决方案。

我的简单规则:如果某些东西需要一个函数作为它的接口(interface),回调通常是一个很好的解决方案。如果需要多个功能,尤其是当对象的基本功能需要它们时,委托(delegate)可能是更好的解决方案。

一如既往,这取决于具体情况,但绝对陈述在现实世界中很少适用。

关于iOS Swift : Closures (Callbacks) versus Delegates, 什么时候使用哪个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46349329/

相关文章:

ios - Testflight Renew 循环问题

swift - ViewDidLoad() 中的导航栏高度未以编程方式更改?

java - 使用回调将参数传递给 javascript 中的 dwr 调用函数

javascript - 如何通过函数调用访问回调

ios - 无法更改状态栏样式

ios - 如何比 scrollviewdid 滚动更快地跟踪 uiscrollview 偏移量?

ios - 如何防止 iOS 消息应用裁剪粘贴的图像?

ios - 在 Swift 中写入 Google 表格

swift - 无法使用 Xib 将 UIView 类型的值转换为 [CustomView]

Javascript回调函数——疑惑与误解