当前位置:  开发笔记 > 编程语言 > 正文

扩展符合协议的类VS扩展基于相似条件的协议的区别?

如何解决《扩展符合协议的类VS扩展基于相似条件的协议的区别?》经验,为你挑选了0个好方法。

我正在浏览这个链接.

但我真的没有得到以下两个代码片段之间的逻辑差异:

1.仅扩展符合协议ErrorPopoverRenderer的UIViewControllers.

protocol ErrorPopoverRenderer {
    func presentError(message: String, withArrow shouldShowArrow: Bool, backgroundColor: UIColor, withSize size: CGSize, canDismissByTappingAnywhere canDismiss: Bool)
} 

extension UIViewController: ErrorPopoverRenderer { //Make all the UIViewControllers that conform to ErrorPopoverRenderer have a default implementation of presentError
    func presentError(message: String, withArrow shouldShowArrow: Bool, backgroundColor: UIColor, withSize size: CGSize, canDismissByTappingAnywhere canDismiss: Bool) 
{}
} 

2.仅为那些符合它的UIViewControllers扩展协议.

extension ErrorPopoverRenderer where Self: UIViewController {
func presentError() {
}
}

无论哪种方式,任何符合协议的UIViewController子类都将具有默认方法实现,但在UIviewcontroller扩展或协议扩展中.什么是逻辑差异?如果我错了,请纠正我

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有