swift中的子类化与扩展
出于某种原因,我想定制一个UITextField。因此,目前我对它进行了子类化,并添加了一些方法 我可以使用UITextField上的扩展吗?swift中的子类化与扩展,swift,Swift,出于某种原因,我想定制一个UITextField。因此,目前我对它进行了子类化,并添加了一些方法 我可以使用UITextField上的扩展吗? 哪一个是好方法?请解释 一般经验法则(YMMV): 您是否在添加每个UITextField都应该可用的通用功能?如果是,请进行扩展。所有UITextField实例都可以调用新方法 您是否添加了一些功能,这些功能应该限制在UITextField的特殊实例中,您可以准确地识别这些实例?如果是,请创建一个子类。只有子类的实例才能使用新方法 还有其他技术方面
哪一个是好方法?请解释 一般经验法则(YMMV):
- 您是否在添加每个
都应该可用的通用功能?如果是,请进行扩展。所有UITextField
实例都可以调用新方法UITextField
- 您是否添加了一些功能,这些功能应该限制在
的特殊实例中,您可以准确地识别这些实例?如果是,请创建一个子类。只有子类的实例才能使用新方法UITextField
还有其他技术方面的考虑,例如扩展不能添加字段。不能覆盖Swift扩展。因此,如果您想要创建一个测试目的的子类,那么您将受到限制。您应该解释您想要做什么。有些事情可以通过继承来完成,但不能通过扩展来完成,还有一些事情可以通过扩展来完成,但不能使用继承。你的问题“现状”太笼统了。你的问题没有答案,就像“什么更好,汽车还是直升机”这个问题没有聪明的答案一样?任何代码,例如,你想在textfield行为中修改什么?很好的答案。你是说,如果我们写一个扩展,那么其他任何一个viewcontroller都会看到吗?我们是否必须使用任何“public”、“internal”属性或其他属性?@亲爱的,这取决于您需要的范围:您需要在哪里使用扩展名
?