Interface Builder XIB 编译器错误

Posted

技术标签:

【中文标题】Interface Builder XIB 编译器错误【英文标题】:Interface Builder XIB Compiler error 【发布时间】:2012-08-03 08:04:31 【问题描述】:

当我将两个 UISwipeGestureRecognizer 连接到 XIB 文件内的项目中的单个视图时,我收到此错误消息(奇怪的是,不是在新项目中)。有人知道这个错误是什么意思吗?这是一个编译错误,而不是运行时错误。我正在使用 Xcode 4.4(这个错误实际上不会在 Xcode 4.5 上发生)。这是来自界面生成器内部的错误。

断言失败 -[IBCocoaTouchToolObjectPackage connectionsByProcessingConnections:], /SourceCache/IBSimulatorComponents/IBSimulatorComponents-223/IBCocoaTouchTool/IBCocoaTouchToolObjectPackage.m:1132012-08-03 16:52:01.428 Interface Builder Cocoa Touch Tool[5646:11903] 产生异常笔尖:合并出口连接及其片段之一的 addContentToExistingCollection 值不匹配。

【问题讨论】:

【参考方案1】:

我怀疑这是因为 Interface Builder 允许您的 outlet 进入不一致的状态。这是 Interface Builder 中的一个逻辑错误,在 ibtool 编译器中表现为运行时异常。我能够通过断开我最近创建的插座和插座集合,然后重新连接它们来解决这个问题。

【讨论】:

有趣的是,我在连接两个UISwipeGestureRecognizers 后也立即看到了这个错误,尽管我几乎看不出这个错误是如何具体由那个类引起的。 对我来说不幸的是,拆线和重新布线只会再次导致错误。当我回到项目时,我会尝试断开所有连接并重新连接它们。 嗯,随机断开并重新连接一些连接使它工作......所以我想这是正确的答案哈哈。 是的,很遗憾我们有时不得不使用巫术来让我们的工具正常工作,但这就是 Xcode 前端的情况...... 刚遇到这个问题。随机拆线和重新布线是解决方案。我首选的解决方案是不使用 IB,而是使用其他人的代码。【参考方案2】:

我实际上能够通过删除 XIB 中的整个面板来消除错误,然后撤消删除。 Clean + Build,错误消失了。不确定这是否也适用于其他人。

【讨论】:

以上是关于Interface Builder XIB 编译器错误的主要内容,如果未能解决你的问题,请参考以下文章

在 Interface Builder 中嵌套 XIB/通过引用嵌入

如何通过 Interface Builder 的 XIB 传递 NSManagedObjectContext

难以访问在 Interface Builder .xib 文件中创建的 UITableViewCell

不使用 Interface Builder 将 NIB 转换为 XIB

Xcode Interface Builder加载XIB文件显示具有透明度的视图

Interface Builder 布局 UIViewController xib 用于更改顶部栏高度的方向