App*_*Dev 8 properties subclass ios class-extensions swift
我使用的是第三方框架,它提供了一个实例只有属性的类.在我的应用程序中,我想为这个实例添加一个额外的属性.适用于这种情况的适当方法是什么?
a)在我的应用程序中扩展框架的类
b)创建框架类的子类并定义我需要的新属性
提前致谢
vad*_*ian 13
它的
b)
因为不支持在类扩展中添加(存储)属性.
使用扩展有两个重要规则:
扩展可以为类型添加新功能,但它们不能覆盖现有功能
扩展可以添加新的计算属性,但不能添加存储的属性,也不能将属性观察者添加到现有属性
这取决于您期望实现的行为.
扩展:您只能添加新方法和计算变量,但您将在代码中实现无缝工作.无需在代码中添加新类即可在任何地方使用新功能
子类:您可以添加新变量和覆盖函数,但代码中的占用空间更大.您需要在整个项目中使用该特定子类.
我想这更像是一个设计问题.
我的建议:如果整个项目需要这个新行为,请使用扩展,否则使用子类.