iOS中的delegate的原理是怎么回事?
如题,以前是个c#新手,在c#里也经常用委托,回来熟了lambda后都是直接写个lambda过去。当时没觉着二者区别多大。
但现在搞iOS有点晕了,怎么这里block和delegate是不同的东西?然后再看看委托的使用上怎么又觉着这不是和使用传统意义上的接口然后多态一个意思嘛?只是delegate有optional和request而已啊。
哎呦不对,我在写这个问题的时候突然感觉好像委托就是我所说的这个原理?求大神给解惑……
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
objc 里的 delegate 跟 c# 里的不是一个概念, obj c 里 delegate 是设计模式里的委托模式,一般就是个协议(别的语言里都叫 interface,objc 里叫 protocol),optional 和 required(我猜你说 request 应该是拼错了)是说实现协议时的某个方法或者变量是必须的还是可选的。比如 table view 本身是不知道自己要显示几行,要显示什么东西的, 需要显示的时候,它就会去问它的 delegate(另外一个服从了 UITableViewDelegate/UITableViewDatasource 的对象的弱引用),我要显示几行?每行多高?显示什么东西?一个类服从了 UITableViewDelegate 的话,有一些方法是必须实现的(required), 有一些是可选的(optional)。你就当在 objc 里跟 c# 里只是用重了关键词吧,但是意思不一样。