使用 @IBDesignable 类时,我突然遇到一个奇怪且可重现的错误,@IBInspectable 属性给出以下警告:
Main.storyboard:警告:IB Designables:忽略“UIButton”实例上关键路径“test”的用户定义运行时属性。尝试设置其值时遇到异常:[ setValue:forUndefinedKey:]:此类不符合键测试的键值编码。
需要明确的是,这个警告只是 Xcode 中的一个问题,它封装得很好。还是很烦!
重现步骤
- 创建新项目
使用 @IBInspectable String 属性创建自定义 @IBDesignable UIButton 子类:
import UIKit @IBDesignable class TempButton: UIButton { @IBInspectable var test:String = "" }
- 将 Button 拖到情节提要中的 View Controller 中,并在 Identity Inspector 中为其提供自定义类“TempButton”。
- 现在“测试”属性应该出现在“临时按钮”属性的属性检查器中 - 在此字段中输入任何内容。
- 砰!出现上述警告。从字段中删除文本,警告就会消失。
我尝试了几种解决方案 - 不同的变量名称,使“测试”属性成为可选,使用初始化程序,到目前为止没有运气。
这是问题的屏幕截图: