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

Ios 为什么Main.storyboard中会出现内部不一致?我该如何解决它?,ios,xcode,storyboard,Ios,Xcode,Storyboard,我在Sierra macOS上打开了一个来自XCode 8的项目,该项目昨天正在进行,没有任何问题。 现在我明白了: 文档“Main.storyboard”有两个内部不一致之处 被发现并修复。这可能是由于SCM操作造成的,例如 合并。请保存文档以修复不一致之处 我无法单击这两个按钮中的任何一个。他们没有回应。 除了关闭项目,我什么都做不了。 我现在应该怎么做才能解决这个问题 有人知道发生这种情况的原因吗?我简直不敢相信我找到了答案……好吧,我找到了一个解决方案,解决了这件可怕的事情,它似乎是由

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

文档“Main.storyboard”有两个内部不一致之处 被发现并修复。这可能是由于SCM操作造成的,例如 合并。请保存文档以修复不一致之处

我无法单击这两个按钮中的任何一个。他们没有回应。 除了关闭项目,我什么都做不了。 我现在应该怎么做才能解决这个问题


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

我简直不敢相信我找到了答案……好吧,我找到了一个解决方案,解决了这件可怕的事情,它似乎是由XCode与内置源代码管理的交互引起的

我不得不关闭XCode很多次才能最终实现这一点。我正在使用文本编辑器对main.storyboard文件进行黑客攻击。我试过各种各样的东西

最后,我进一步思考了错误消息

原始消息中的“SCM”是什么?我猜是源代码管理模块,因为它提到了合并

然后,我注意到左侧main.storyboard文件旁边的大写字母“M”,其中列出了项目文件。它看起来像:

我猜这表明源代码管理说它是“M”修改的,所以我右键单击main.storyboard文件并告诉它放弃更改

如下所示:

在那之后,我能够再次打开故事板。 奇怪的是,有一次我甚至可以在项目处于损坏状态时运行它。
花了很多时间才完成

XCode开发者必须解决这个问题。太可怕了

编辑2 啊!真是浪费时间。每次我再次查看故事板时,SCM都会合并一些内容,最后我确实看到了与错误有关的内容。它看起来像:

哦,当然,这可能是我用InterfaceBuilder做的事情,这是我的错,但可怕的愚蠢XCode让我这么做了

编辑3 好吧,我注意到它认为标签都被拉长了。但是,是源代码管理合并自动完成了这项工作。我想知道我的整个项目是否会被干杯?

编辑4

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

部分根本原因

问题在于,由于某种未知原因,将特定标签放置在stackview中时,可能会发疯,并试图达到9000000000个单位的高度

一种修复方法

快速浏览一下本文中的第二张图片。它显示了我右键单击main.storyboard文件的位置。当Interface Builder试图渲染情节提要时,我看到标签又一次因为高度过大而疯狂,然后我就可以了

  • 选择“使用外部编辑器打开”
  • 搜索有问题的大小(我搜索了9000000)
  • 更改文件中的大小并保存,然后Interface builder会正确地重新渲染
  • 冲突约束

    我还发现了一些相互冲突的约束条件,这些约束条件值得怀疑,我解决了所有这些问题。在那之后,如果我将标签复制到StackView中,我仍然会看到标签变得疯狂,但至少我可以通过在文本编辑器中编辑它来改变它。 祝你好运

    我也遇到了同样的问题(5个内部不一致),并找到了类似于@daylight的解决方案,但我认为可以添加更多颜色

    首先,这有助于强调这是多么令人虚弱-我无法关闭对话框,因此无法更改故事板中的任何内容来修复它-可怕的错误

    问题是:

    • 在Xcode 8上,Xcode正在悄悄地大量更改情节提要(可以通过git跟踪更改)。其中一些更改为StackView中的标签增加了荒谬的高度(根据@daylight)。大概xCode试图自动解决布局冲突,但失败了。这些更改导致/关联此问题中的对话框,从而导致崩溃

    • 一旦xcode添加了这些更改,访问该文件的唯一方法就是作为源代码打开

    • Xcode 8第一次打开storyboard+时,在它要求您选择查看设备之后,我能够以图形方式访问storyboard+,这让我有机会检查它

    • 我无法通过简单地放弃/修复更改来修复问题,因为Xcode会再次进行更改

    解决方案:

    • 通过仔细跟踪并还原通过git所做的更改,并查找疯狂的高高度数字,我能够在一个视图中将问题跟踪到StackView。我从这些StackView中取出了我的所有内容(在那个短暂的机会中,我可以以图形方式访问故事板)+删除了它们。问题解决了。现在我只需要重新格式化这个观点,对我来说这并不是太多的工作

    @Phil Ken Sebben该漏洞的出现方式似乎与我的相同——与一个疯狂的观点有关。谢谢你插嘴。这个令人不快的数字可能不到9000000。超过10000的高度也会导致同样的问题。用于查找大于10000的高度的正则表达式:height=“\d{5,}”@tolpp感谢添加正则表达式。这是找到问题根源的好主意。我已经提交了一份错误报告:29162925谢谢,弗兰基。这是一个骗局radar://28339876,以及已知的Xcode 8.1中的一个回归,我们已经为8.2准备好了一个修复程序(不幸的是,它不在8.2 beta 1中)。@QuinTaylor考虑到这个问题的严重性,您可能希望在Xcode 8.1.1中发布该修复程序。每次我想编辑情节提要时,我都必须强制退出Xcode,因为我无法摆脱这个对话框。