在使用@IBDesignable类时,我突然发现一个奇怪且可重现的错误,@ IBInspectable属性发出以下警告:
Main.storyboard:warning:IB Designables:忽略关键路径的用户定义的运行时属性" test"在" UIButton"的实例上。尝试设置其值时遇到异常:[setValue:forUndefinedKey:]:此类与密钥测试不符合密钥值编码。
要明确这个警告只是Xcode中的一个问题,它包装正常。仍然很烦人!
重现的步骤
使用@IBInspectable String属性创建自定义的@IBDesignable UIButton子类:
import UIKit
@IBDesignable
class TempButton: UIButton {
@IBInspectable var test:String = ""
}
我尝试过多种解决方案 - 不同的变量名称,进行“测试”。 property an可选,使用初始化程序,到目前为止没有运气。
以下是问题的截屏:
答案 0 :(得分:9)
我通过确保Interface Builder“build”没有任何错误来解决这个问题。这就是:
请注意,如果对您正在使用的文件无关,则会出现问题。看来,如果Interface Builder Build在构建相关文件之前失败,您会看到这些非常神秘的警告
(我的原因最终是错误地引用AppIcon和SplashScreen资产目录的共享扩展目标。)
答案 1 :(得分:8)
我面临同样的问题,我解决了它。 当你打开故事板时: 在上方菜单中单击编辑器。 双击刷新所有视图。 3 - 重启您的应用程序。 4-生成。
答案 2 :(得分:0)
答案 3 :(得分:0)
为了您自己的利益,我希望您不会像我一样愚蠢,但我只花了2个小时来寻找解决方案。就我而言,我有一个定义为BOOL指针的属性...奇怪的是,它给了我同样的错误。
我不得不从:
@property (nonatomic) IBInspectable BOOL *randomProp;
收件人:
@property (nonatomic) IBInspectable BOOL randomProp;