我正在尝试使用 Swift 2 赶上这种面向协议的编程酷炫,但我目前很迷茫。
我正在尝试将理论应用于实际用例,所以让我们从最明显的开始:
假设我有一个UITextField
并且我想要有许多协议(例如电话、数字、长度限制……),这些协议符合UITextFieldDelegate
并覆盖该textField:shouldChangeCharactersInRange:replacementString
方法以完成所需的行为。
是否有可能拥有一个带有此扩展名的“Extensions.swift”文件并将所需的协议分配给一个UITextField
(例如数字、长度限制)?那将非常有用。如果是这样,有没有办法将协议分配给一个UITextField
出口,或者我需要继承 aUITextField
并使其符合所需的协议?如果是这种情况,那么我认为使用协议扩展比使用旧的子类化没有太多优势。