我在Sierra macOS的XCode 8上打开了一个项目,该项目昨天正在进行,没有任何问题 现在我明白了:
文档“Main.storyboard”有两个内部不一致的地方 被发现并修复。这可能是由于SCM操作,如 合并。请保存文档以解决不一致问题。
我无法点击其中任何一个按钮。他们没有回应。 除了关闭项目,我什么也做不了。 我现在应该怎么做才能解决这个问题?
有谁知道发生这种情况的原因?
答案 0 :(得分:7)
我无法相信我找到了答案......好吧,找到了解决这个可怕的事情的解决方案,这似乎是由XCode与内置源代码控制的交互引起的。
我不得不多次关闭XCode才能最终实现这个目标。我正在使用文本编辑器攻击main.storyboard文件。我尝试过各种各样的事情。
最后,我更多地考虑了错误信息。
" SCM "在原来的消息?我猜这是源控制模块,因为它提到了合并。
然后我注意到了首都" M"在我的main.storyboard文件旁边,列出了项目文件。它看起来像:我猜这是告诉我,Source Control说它是" M" odified所以我右键单击main.storyboard文件并告诉它放弃更改。
如下所示:
之后,我又能够打开故事板了。 奇怪的是,有一点我甚至能够在处于腐败状态时运行项目 为了完成它,我们进行了很多努力。
XCode Devs必须解决这个问题。太可怕了。
编辑2 啊!真是浪费时间。每次我再次查看故事板,然后SCM合并了一些内容,最后我确实看到了与错误有关的内容。看起来像:
哦,当然,这可能是我在InterfaceBuilder上所做的事情,这是我的错,所有这一切,但是可怕的可怕愚蠢的XCode让我做到了。编辑3 好的,我注意到它认为标签已全部展开。但是,它是自动执行此操作的源控件合并事件。我想知道我的整个项目是否会敬酒?
编辑4
我能够通过更多细节进一步解决这个问题,所以我想记录下来以帮助其他人。
根本原因的一部分
问题在于,由于某种未知的原因,当放置在堆栈视图中时,特定标签会变得疯狂并且尝试高度为9,000,0000,000单位。
一种解决方法
快速浏览一下这篇文章中的第二张图片。它显示我右键单击main.storyboard文件的位置。当Interface Builder试图渲染故事板然后我能够
时,我看到标签再次以疯狂的高度再次疯狂冲突约束
我还发现了一些有问题的相互矛盾的约束,我得到了所有这些约束。之后,如果我将它复制到StackView中,我仍然看到标签发疯了,但至少我可以通过在文本编辑器中编辑来改变它。 祝好运。
答案 1 :(得分:2)
我有同样的问题(5个内部不一致),并找到了类似于@daylight的解决方案,但我想我可以添加更多颜色。
首先 - 有用的是突出显示这是多么令人虚弱 - 我无法关闭对话框,因此无法改变故事板中的任何内容来修复它 - 可怕的错误。
问题:
在Xcode 8上,Xcode正在大规模地改变故事板(可以通过git跟踪更改)。其中一些更改为stackviews中的标签添加了荒谬的高度(根据@daylight)。据推测,xCode正在尝试+无法自动解决布局冲突。这些更改导致/关联此问题中的对话框,从而导致崩溃。
一旦xcode添加了这些更改,访问该文件的唯一方法是打开源代码。
Xcode 8第一次打开故事板+在它要求您选择查看设备之后,我能够以图形方式访问故事板,这让我有机会检查它。
我无法通过简单地丢弃/修复更改来解决问题,因为Xcode会再次制作它们。
解决方案: