gpt4 book ai didi

ios - 扩展 UIControl 以分配持久性的启动值

转载 作者:行者123 更新时间:2023-11-30 12:20:03 25 4
gpt4 key购买 nike

堆栈溢出,

我正在努力扩展 UIControl 以为其自身分配单个值。实现这一点是为了它可以在启动时分配一个值以实现持久性。我的目标是尽可能普遍地做到这一点,以便它可以轻松扩展。我的方法的主要组成部分之一是切换 UIControl 的类型。例如,如果它是一个开关,我需要分配一个 bool 值,如果它是一个 TextView ,我需要分配一个字符串。然而,它给了我一些错误,如下所示:

Cast from 'UIControl' to unrelated type 'UITextView' always fails

Expression pattern of type 'Bool' cannot match values of type '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
}
}
}

谢谢,宏

最佳答案

self.hello(),

如果对象的类型为 UISwitch、UITextView 等,则可以通过将 true 匹配来修复语法错误。所有 UIControl 元素都将继承此方法。最好单独扩展每个已实现的 UIElement,这样它们就不会全部具有该功能。

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 感谢()

关于ios - 扩展 UIControl 以分配持久性的启动值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44909294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com