【问题标题】:Remove @IBInspectable error: Failed to set () user defined inspected property on (UIView)删除@IBInspectable 错误:无法在(UIView)上设置()用户定义的检查属性
【发布时间】:2019-09-02 11:46:34
【问题描述】:

我添加了一个名为style@IBInspectable 属性作为extensionUIView。我重构了它,因为它干扰了UITableView.style。我收到此错误,我确切地知道该错误的含义,但无法弄清楚如何真正阻止它寻找style。它不会导致致命错误,但它非常烦人。有人知道怎么去掉吗?

我重构的@IBInspectable代码:

// Global variable to produce a unique address as the AssociatedObjectHandle
var AssociatedObjectHandle: UInt8 = 0

public extension UIView {

    @IBInspectable var styleName: String {
        get {
            return objc_getAssociatedObject(self, &AssociatedObjectHandle) as? String ?? ""
        }
        set {
            objc_setAssociatedObject(self, &AssociatedObjectHandle, newValue, objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC)
        }
    }
}

我试过了:

1:清理和构建

2:删除模拟器文件

3:退出 XCode

【问题讨论】:

    标签: ios swift xcode ibinspectable


    【解决方案1】:

    需要在情节提要的身份检查器中从用户定义的运行时属性中删除该属性。在发布问题后不久就想到了这一点。

    如下图:

    【讨论】:

    • 有类似情况。使用 IBInspectable 属性创建了 UIView 的特殊子类。在IB中使用了这个。然后在 IB 中复制视图,因为它具有我想要的着色方式,但不需要特殊功能 - 所以将其降级为 UIView。所以,现在 IB 抱怨,因为 UIView 无法设置此属性 - 并且没有意识到该属性从副本中存在。像这篇文章中所说的那样删除它会清理错误报告。
    猜你喜欢
    • 2014-12-25
    • 1970-01-01
    • 1970-01-01
    • 2020-11-02
    • 1970-01-01
    • 1970-01-01
    • 2017-01-12
    • 1970-01-01
    • 2020-11-25
    相关资源
    最近更新 更多