gpt4 book ai didi

ios4 - 代码块能完全取代委托(delegate)吗?

转载 作者:行者123 更新时间:2023-12-02 10:33:02 25 4
gpt4 key购买 nike

现在 iPhone/iPad 开发终于支持了 block ,这些是否完全消除了对委托(delegate)的需要,或者委托(delegate)作为完整的接口(interface)实现仍然更干净,而 block 更适合单个任务?

最佳答案

我一直在寻找这方面的官方文档,但尚未找到。基于对 iOS 5 中公开的新类以及对预先存在的类所做的添加的审查,我建议我的团队假定委托(delegate)协议(protocol),但在存在直接因果关系时提供一个 block 。 em> 在该特定调用和 block 的性能之间。

因此,根据经验,当需要持续通信、导致通信的操作分散或操作来自第三方来源时,委托(delegate)协议(protocol)是正确的。 block 主要与异步操作尤其是单次类相关。

编辑:所以,一些例子:

UIScrollViewDelegate 是正确的委托(delegate)协议(protocol),因为 (i) 可能需要通信的事物范围很广; (ii) 可能需要随时以任何顺序进行传达; (iii) 出于委托(delegate)无法控制的原因而进行沟通。

NSURLConnection +sendAsynchronousRequest:queue:completionHandler: 正确地采用一个 block 来传递结果,因为 (i) 只有一个结果要报告; (ii) 报告作为调用者采取的行动的直接结果而返回。

关于ios4 - 代码块能完全取代委托(delegate)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4584404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com