gpt4 book ai didi

objective-c - 在objective-c中直接调用delegate的方法

转载 作者:搜寻专家 更新时间:2023-10-30 20:09:24 24 4
gpt4 key购买 nike

我创建了一个协议(protocol),要求类客户端实现一个方法。在客户端类中,我还需要执行此方法中定义的相同操作,而不仅仅是在委托(delegate)调用它时。我不认为复制粘贴代码是个好主意,但我也不知道直接在客户端类中调用此方法是否是一个好习惯。我在想也许委托(delegate)方法应该只由委托(delegate)调用。

我是否应该创建在委托(delegate)方法中调用的第三个方法以及何时需要它?或者,我可以直接调用委托(delegate)方法吗?

最佳答案

使用blocks 而不是delegates 来解决您的问题。 block 与委托(delegate)做同样的工作,只是它更干净,需要更少的管道工作(想想你必须在类和它们的委托(delegate)之间穿梭的所有那些实例变量/属性......在 block 中,所有信息都封装在 block 中),并且与 iOS/objective-c 社区的发展方向一致(您会发现许多高知名度的库正在发展以用 block 代替委托(delegate)和其他内容)。

如果您不熟悉 block 或者您发现它的古怪语法很烦人,here是一个用户友好的指南。

还有 here是一个很好的答案,它将基于 delegate 的解决方案与基于 block 的解决方案进行了比较,并说明了 block 解决方案如何比委托(delegate)解决方案更干净。

关于objective-c - 在objective-c中直接调用delegate的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18604180/

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