为什么Main.storyboard中出现内部不一致,我该如何解决它?

rad*_*vus 15 xcode storyboard ios

我在Sierra macOS的XCode 8上打开了一个项目,该项目昨天正在运行,没有任何问题.
现在我明白了:

文档"Main.storyboard"有2个内部不一致的地方被发现和修复.这可能是由于SCM操作(例如合并)造成的.请保存文档以解决不一致问题.

故事板错误

我无法点击其中任何一个按钮.他们没有回应.除了关闭项目,我什么也做不了.我现在应该怎么做才能解决这个问题?

有谁知道发生这种情况的原因?

rad*_*vus 7

我无法相信我找到了答案......好吧,得到了解决这个可怕的事情的解决方案,这似乎是由XCode与内置源代码控制的交互引起的.

我不得不多次关闭XCode才能最终实现这个目标.我正在使用文本编辑器攻击main.storyboard文件.我尝试过各种各样的事情.

最后,我更多地考虑了错误信息.

原始邮件中的" SCM "是什么?我猜这是源控制模块,因为它提到了合并.

然后我注意到左边的main.storyboard文件旁边的大写"M",其中列出了项目文件.看起来像:

项目文件已修改

我猜这是告诉我,Source Control说它是"M"odified所以我右键单击main.storyboard文件并告诉它放弃更改.

它看起来如下:

回滚变化

之后,我又能够打开故事板了.奇怪的是,有一点我甚至能够在处于损坏状态时运行项目.
为了完成它,需要进行大量的努力.

XCode Devs必须解决这个问题.它是可怕的.

编辑2 呃!真是浪费时间.每次我再次查看故事板,然后SCM合并了一些内容,最后我确实看到了与错误有关的内容.看起来像: 大堆栈视图

哦,当然,这可能是我用InterfaceBuilder所做的事情,这是我的错,而且所有这些,但可怕的可怕愚蠢的XCode让我做到了.

编辑3 好的,我注意到它认为标签已全部展开.但是,它是自动执行此操作的源控件合并事件.我想知道我的整个项目是否会敬酒? 标签有很大的高度

编辑4

我能够通过更多细节进一步解决这个问题,所以我想记录下来以帮助其他人.

根本原因的一部分

问题在于,由于某种未知的原因,当放置在堆栈视图中时,特定标签会变成疯子并且试图达到9,000,0000,000单位的高度.

一种方法来修复

快速浏览一下这篇文章中的第二张图片.它显示我右键单击main.storyboard文件的位置.当Interface Builder尝试渲染故事板时,我实际上看到标签再次以巨大的高度变得疯狂,然后我就能够

  1. 选择打开外部编辑器
  2. 搜索有问题的大小(我搜索了9,000,000)
  3. 更改文件中的大小并保存,然后"接口"构建器正确重新呈现.

矛盾的约束

我还发现了许多相互矛盾的约束,这些约束值得怀疑,我得到了所有这些约束.之后,如果我将它复制到StackView中,我仍然看到标签发疯了,但至少我可以通过在文本编辑器中编辑来改变它.祝好运.