【发布时间】:2021-06-18 13:06:38
【问题描述】:
我看到很多关于此的问题,但答案很少(one answer 解决了之前的类似问题,但没有解决这个问题)。
问题
我有an IBDesignable class。它派生自 UIControl,但如果我从 UIView 派生,也会发生同样的事情。
基本上是这样的:
@IBDesignable
open class RVS_Checkbox: UIControl { ... }
它工作得很好(链接指向this project,这是一个“插入式”UIControl 类)。
但它不会在 Interface Builder 中呈现。我收到此错误:
这是错误,逐字逐句:
The built product "/Volumes/Development/Developer/Xcode/DerivedData/RVS_Checkbox-ficjiiqrddckmjenmsrbrxvihaky/Build/Intermediates.noindex/IBDesignables/Products/Debug-appletvsimulator/RVS_Checkbox" does not exist in the file system. Make sure your built products contains either an application or a framework product.
首先,这是一个 tvOS 错误,这是一个仅限 iOS 的类。我之前也遇到过类似的问题,this answer 为我解决了这个问题。我将代码包装在#if...#else...#endif 中,如下所示:
#if os(iOS)
@IBDesignable
open class RVS_Checkbox: UIControl { ... }
#else
@IBDesignable
class RVS_Checkbox: UIView { }
#endif
我什至给了它一个空的“占位符”,以备不时之需。
没有骰子。无论我做什么,仍然会发生 IB 错误,并且元素不会呈现。
就像我说的,它仍然可以正常工作,并且还显示了适当的可检查属性:
但它不会渲染。
这是错误,在它抱怨的目录旁边:
我确定我做错了什么,但不知道是什么。我尝试删除 DerivedData,清理项目,尝试了所有 4 个目标,等等。
没有骰子。
有什么想法吗?
【问题讨论】:
-
开始看起来这可能是 Xcode 12 的一个问题,直到今年晚些时候我终于得到一台 M1X/M2 Mac 后才能解决。我看到的关于这个问题的大部分谈话都是这样(我还没有看到任何真正的解决方案)。没那么严重。
-
嗯...风滚草很强大,在这个。我发送了一个 DTS 请求(我从不使用它们,为什么不呢?)。
-
这似乎是 Xcode 的一个问题,而 Apple 并不急于解决它。它似乎与 IB 文件的复杂性有关。我无法通过简单的项目来实现它,但是一旦它开始变得复杂,我就会得到错误。可能不值得我尝试进一步调查。
标签: ios swift interface-builder ibdesignable