在swift中子类化与扩展

时间:2015-07-02 08:54:49

标签: swift

我想出于某种原因自定义一个UITextField。所以目前我将其分类并添加了一些方法。

而不是我可以在UITextField上使用扩展吗? 哪种方法好?请解释 !

2 个答案:

答案 0 :(得分:47)

作为一般经验法则(YMMV):

  • 您是否添加了每个UITextField应该可用的通用功能?如果是,请进行扩展。所有UITextField实例都可以调用新方法。
  • 您是否正在添加应限制为您将精确识别的UITextField特殊实例的功能?如果是,请创建一个子类。只有子类的实例才能使用新方法。

还有其他一些技术因素,例如扩展名不能添加字段。

答案 1 :(得分:1)

Swift扩展不能被覆盖。因此,如果您想创建一个测试目的子类,那么您将受到限制。