的StackOverflow,
我正在努力扩展UIControl以为其自身分配单个值。这是实现的,因此它可以在启动时为持久性分配值。我的目标是尽可能地做到这一点,因此它很容易扩展。我的方法的主要组成部分之一是打开UIControl的类型。例如,如果它是一个开关我需要分配一个bool,如果是一个文本视图我需要分配一个字符串。然而,它给了我一些错误,如下所示:
来自' UIControl'到不相关的类型' UITextView'总是失败
Bool'类型的表达模式无法匹配类型的值 ' UIControl'
我知道这段代码完全错误,但我没有找到其他办法。你有什么建议实施这种方法?我是在正确的轨道上吗?
extension UIControl {
func assignValue(value: Any?){
switch(self){
case self is UISwitch:
(self as! UISwitch).isOn = value as! Bool
case self is UITextView:
(self as! UITextView).text = value as! String
default:
break
}
}
}
谢谢, 宏
答案 0 :(得分:0)
self.hello(),
可以通过将true与对象类型为UISwitch,UITextView等的情况匹配来修复语法错误。所有UIControl元素都将继承此方法。单独扩展实现的每个UIElements可能会更好,因此它们并不都具有该功能。
extension UIControl {
func assignValue(object: AnyObject, value: Any){
switch(true){
case object is UISwitch:
(object as! UISwitch).isOn = value as! Bool
case object is UITextView:
(object as! UITextView).text = value as! String
default:
break
}
}
}
self.thanks()