【发布时间】:2013-12-04 21:50:37
【问题描述】:
这里是 Xcode 的新手——当 Xcode 遇到编译时错误时,有没有办法从 Xcode 中获取更多细节?当我尝试构建我的应用程序时,我收到的唯一消息是“Interface Builder Storyboard Compilation Failed”。我不知道它有什么问题。
日志导航器中的“构建”项下也没有任何其他内容。
【问题讨论】:
标签: ios xcode uistoryboard
这里是 Xcode 的新手——当 Xcode 遇到编译时错误时,有没有办法从 Xcode 中获取更多细节?当我尝试构建我的应用程序时,我收到的唯一消息是“Interface Builder Storyboard Compilation Failed”。我不知道它有什么问题。
日志导航器中的“构建”项下也没有任何其他内容。
【问题讨论】:
标签: ios xcode uistoryboard
多亏了 wufoo,我才弄明白了。
我有一个包含五个静态单元格的表格视图。这些单元格有各种各样的 UIImageViews、UITextFields 等。我在主 UITableViewController .h 文件中创建了 IBOutlets,并直接连接到情节提要中的静态单元格 UITextfields。你不能那样做。
一旦我删除了这些连接,它对我来说编译得很好。
看来您必须将静态创建的单元格中的 UIWidgets(文本字段、标签、图像视图等)直接连接到该单元格 .h 文件中的 IBOutlets(不像我所做的那样,连接到 tableview .h 文件中的 IBOutlets)。
---- 更新----
好的,所以我最初的帖子并不完全准确。看来您可以将 IBOutlets 从 UITableViewCell 的子类直接连接到主 UITableViewController .h 文件。您只需确保将 Table View Content 字段设置为“Static Cells”。我错过了那一步。
这是一张图片来说明: 选择您的故事板,在左侧的详细信息窗格中,确保选择了您的“表格视图”。在右侧的窗格中选择您的属性检查器面板并从“动态原型”更改为“静态单元”。通过将组件拖放到情节提要上来设置静态单元格,然后如果您想从组件直接链接到主 ViewController .h 文件上的 IBOutlet 属性,则可以。
我发现我遇到的问题是我在情节提要中设置了静态单元格,然后尝试在委托方法 cellForRowAtIndexPath: 中再次动态地重新创建它们。这不太好。如果您使用静态单元格,则不需要使用任何单元格设置委托方法。
以下是一些对我有帮助的优秀读物: Apple TableView Programming Guide
【讨论】:
不管怎样,这个问题似乎与我的 .m 文件中声明的两个 IBOutlet 对象有关。一个引用UISlider,另一个引用UILabel。我删除了引用,然后将它们声明为类变量。在viewDidLoad 中,我使用[self.view viewWithTag:TAG_FROM_STORYBOARD_WIDGET] 将它们连接起来。看起来与提到的解决方案相同
f.perdition 在上面的链接中。
【讨论】:
对我来说,是项目中两个相同的故事板导致此错误频繁弹出。
我创建了一个故事板 X,在其中添加了一个视图控制器 Y。然后我将视图控制器 Z 重构为故事板 X。Xcode 询问我是否要替换现有的故事板 X,我选择了是。
仅在几个小时后,我才注意到文件/项目导航器(左窗格)中有两个故事板引用。删除了其中一个引用,此后问题未出现。
【讨论】:
在我的用例中,我添加了一个新目标,该目标运行使用xcodebuild 的构建脚本。我收到了同样的失败,但原因是 Build Settings 中默认情况下 Mac Catalyst 支持为 YES。 (我的主要目标不支持 Mac Catalyst。)在 Builds Settings 中将它们更改为 NO 解决了我的问题。
【讨论】: