Swift convenience关键字

学习swift过程中发现在给一些系统控件扩展分类的时候用到了convenience关键字,比如下面这个UIButton的分类


经查阅资料,原因就是swift为了保证安全,有了严格的初始化方法,Swift 中不加修饰的 init 方法都需要在方法中保证所有非 Optional 的实例变量被赋值初始化,那么我们自己想要写个构造方法的时候把当前类所有非optional的实例变量被赋值初始化,那就变得非常麻烦了,所有这时候convenience方法就显得很方便了,这类方法是 Swift 初始化方法中的 “二等公民”,只作为补充和提供使用上的方便。convenience方法中必须调用self.init来保证非optional的实例变量被赋值初始化。


参考文章

DESIGNATED,CONVENIENCE 和 REQUIRED

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容