【发布时间】:2016-01-19 17:04:11
【问题描述】:
我正在尝试在 iOS 的 Swift 2 中编写一个函数,该函数处理一些文本并将其写入UITextField 或 UILabel。目前,我有以下工作:
@IBOutlet weak var textField: UITextField!
@IBOutlet weak var textLabal: UILabel!
func writeSomeText(string: String, toOutput: UITextField) {
// do some text processing
toOutput.text = // processed string
}
func writeSomeText(string: String, toOutput: UILabel) {
// do some text processing
toOutput.text = // processed string
}
如您所见,现在我正在重载该函数,本质上是为 UITextField 和 UILabel 复制它,并且由于我有一堆完全相同的文本处理,所以我正在复制代码。
有没有办法使用泛型编写一个函数来通过一个函数定义来实现这一点?
【问题讨论】:
-
当然有,编写一个具有可设置文本属性的协议,并使您的第二个参数成为符合此协议的对象