iOS中的delegate的原理是怎么回事?

发布于 2022-09-01 21:06:42 字数 226 浏览 12 评论 0

如题,以前是个c#新手,在c#里也经常用委托,回来熟了lambda后都是直接写个lambda过去。当时没觉着二者区别多大。
但现在搞iOS有点晕了,怎么这里block和delegate是不同的东西?然后再看看委托的使用上怎么又觉着这不是和使用传统意义上的接口然后多态一个意思嘛?只是delegate有optional和request而已啊。
哎呦不对,我在写这个问题的时候突然感觉好像委托就是我所说的这个原理?求大神给解惑……

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小耗子 2022-09-08 21:06:42

objc 里的 delegate 跟 c# 里的不是一个概念, obj c 里 delegate 是设计模式里的委托模式,一般就是个协议(别的语言里都叫 interface,objc 里叫 protocol),optional 和 required(我猜你说 request 应该是拼错了)是说实现协议时的某个方法或者变量是必须的还是可选的。比如 table view 本身是不知道自己要显示几行,要显示什么东西的, 需要显示的时候,它就会去问它的 delegate(另外一个服从了 UITableViewDelegate/UITableViewDatasource 的对象的弱引用),我要显示几行?每行多高?显示什么东西?一个类服从了 UITableViewDelegate 的话,有一些方法是必须实现的(required), 有一些是可选的(optional)。你就当在 objc 里跟 c# 里只是用重了关键词吧,但是意思不一样。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文