ios – Objective C委托还是C风格的块回调?

ios – Objective C委托还是C风格的块回调?,第1张

概述我正在设计一个类,当发生某些事情时,它会“触发事件”.这些事件往往与非UI相关.我想知道这样做的最佳方法是什么.我一直在探索: 代表 我将定义一个委托类,在init函数中接受委托,并在事件发生时调用委托类上的方法. C风格的积木 我将定义一个函数指针,并在init函数中接受一个函数.我会在事件发生时调用它. 在这两种情况下,我可能需要处理多个“源”,因此我需要一组委托或块. 我注意到在iOS编程中 我正在设计一个类,当发生某些事情时,它会“触发事件”.这些事件往往与非UI相关.我想知道这样做的最佳方法是什么.我一直在探索:

代表

我将定义一个委托类,在init函数中接受委托,并在事件发生时调用委托类上的方法.

C风格的积木

我将定义一个函数指针,并在init函数中接受一个函数.我会在事件发生时调用它.

在这两种情况下,我可能需要处理多个“源”,因此我需要一组委托或块.

我注意到在iOS编程中,代表往往更喜欢UI框架.但是我来自函数编程背景,我非常适合接受函数点并在调用站点传递lambdas,我喜欢编译器为你处理吊装变量,你通常需要较少的类状态.但我发现许多iOS开发人员正在使用委托.

iOS中通常首选的机制是什么?

解决方法 每个都有它的用途.

当有多个“事件”告诉代表时,和/或何时类需要从代理获取数据时,应使用代理.一个很好的例子是UItableVIEw.

当只有一个(或两个)事件时,最好使用块.完成块(可能是故障块)就是一个很好的例子.一个很好的例子是NSURLConnection sendAsynchronousRequest:queue:completionHandler:.

第三个选项是通知.当事件中可能存在多个(和未知的)相关方时,最好使用此方法.另外两个仅在有一个(并且已知)感兴趣方时才有用.

总结

以上是内存溢出为你收集整理的ios – Objective C委托还是C风格的块回调?全部内容,希望文章能够帮你解决ios – Objective C委托还是C风格的块回调?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1108376.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存