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

就我个人而言,我更喜欢Swift中委托的callback,因为它非常简单易懂。 同时,有些人更喜欢委托,因为委托是其他语言(如C#)中的stream行模式。

我在网上find了一些讨论:

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

2.苹果正在把重点转移到callback模式上 https://www.reddit.com/r/swift/comments/2ces1q/closures_vs_delegates/

3.块或代表? http://blog.stablekernel.com/blocks-or-delegates/

在阅读这些讨论之后,我仍然对这个偏好犹豫不决。 我想知道什么时候最好使用闭包,何时使用代理更好? 和原因?

谢谢!

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

问题不应该是哪个更好,应该是什么是我想要解决的问题的最佳解决scheme。

我的简单规则:如果某件事情需要一个函数作为接口,callback通常是一个很好的解决scheme。 如果需要多个函数,特别是对于对象的基本function需要,委托可能是更好的解决scheme。

一如既往,取决于具体情况,但绝对的说法很less在现实世界中使用。