Xcode的新功能 - 有没有办法在Xcode遇到编译时错误时从Xcode中获取更多细节?我尝试构建应用程序时获得的唯一消息是" Interface Builder Storyboard编译失败"。我不知道它有什么问题。
" Build"日志导航器中的项目。
答案 0 :(得分:17)
感谢wufoo我想出了我的意思。
我的桌面视图有五个静态单元格。单元格有各种各样的UIImageViews,UITextFields等。我在主UITableViewController .h文件中创建了IBOutlets,并直接连接到故事板中的静态单元格UITextfields。你不能这样做。
一旦我删除了这些连接,它就编译好了。
看来你必须将静态创建的单元格中的UIWidgets(文本字段,标签,图像视图等)直接连接到该单元格.h文件中的IBOutlets(不像我所做的那样,连接到tableview .h文件中的IBOutlets)。
----更新----
好的,所以我的帖子不完全准确。看来你可以将IBOutlets从UITableViewCell的子类直接连接到主UITableViewController .h文件。您只需确保将表视图内容字段设置为"静态单元格"。我错过了那一步。
这是一张图片来说明: 选择您的故事板,在左侧的详细信息窗格中,确保您的"表视图"被选中。在右侧窗格中,选择属性检查器面板,然后从" Dynamic Prototypes"更改到#34;静态细胞"。通过将组件拖放到情节提要板上来设置静态单元格,然后如果要从组件直接链接到主ViewController .h文件中的IBOutlet属性,则可以。
我发现我遇到的问题是我在storyboard中设置静态单元格,然后尝试在委托方法cellForRowAtIndexPath:中再次动态重新创建它们。这不是很好。如果使用静态单元格,则无需使用任何单元设置委托方法。
这里有一些优秀的阅读也帮助了我: Apple TableView Programming Guide
答案 1 :(得分:1)
对于它的价值,问题似乎与我的.m文件中声明的两个IBOutlet
对象有关。一个引用UISlider
,另一个引用UILabel
。我删除了引用,然后将它们声明为类变量。在viewDidLoad
我使用[self.view viewWithTag:TAG_FROM_STORYBOARD_WIDGET]
将它们连接起来。看起来像提到的解决方案一样
f.perdition在上面的链接。
答案 2 :(得分:0)
对我来说,项目中有两个相同的故事板导致此错误频繁出现。
我创建了一个故事板X,在其中添加了一个视图控制器Y.然后我重构了一个视图控制器Z到故事板X.Xcode询问我是否要替换现有的故事板X并选择是。
仅在几个小时之后,我注意到文件/项目导航器(左窗格)中的故事板有两个引用。删除了其中一个参考资料,之后问题就没有显示出来。
答案 3 :(得分:0)
在用例中,我添加了一个新目标,该目标运行使用xcodebuild
的构建脚本。我收到了同样的失败消息,但是原因是 Build Settings 中默认情况下 YES 支持Mac Catalyst。 (我的主要目标不支持Mac Catalyst。)在 Builds Settings 中将其更改为 NO 可以解决此问题。