iOS Swift:闭包(Callbacks)与代表,何时使用哪个?

时间:2016-11-03 22:18:58

标签: ios swift callback delegates closures

就个人而言,我更倾向于使用Swift中的委托进行回调,以获得简单的逻辑关联,因为它非常直观且易于理解。同时,有些人更喜欢委托,因为委托是其他语言的流行模式,比如C#。

我在网上找到了一些讨论:

1。 “为什么你不应该在Swift中使用代理?” https://medium.cobeisfresh.com/why-you-shouldn-t-use-delegates-in-swift-7ef808a7f16b#.hqb7zrc1v

2。 Apple正在将注意力更多地放在回调模式上 https://www.reddit.com/r/swift/comments/2ces1q/closures_vs_delegates/

第3。街区或代表? http://blog.stablekernel.com/blocks-or-delegates/

在阅读完这些讨论后,我仍未决定偏好。 我想知道什么时候更好地使用闭包,何时更好地使用代理?和原因?

谢谢!

1 个答案:

答案 0 :(得分:25)

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

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

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

一如既往地取决于具体情况,但绝对陈述在实际使用中很少有用。