与故事板文件中的inferredMetricsTieBreakers发生合并冲突

Dan*_*row 45 xcode interface-builder

每当我在故事板文件中出现冲突时,我通常都可以解决它.但是,我有一个问题,现在两周内出现两次.

在我的Storyboard文件的最底部,我看到名为"inferredMetricsTieBreakers"的块,其中包含一堆"segue"标签.似乎我本地仓库中的一些segue与远程仓库中的另一个segue相冲突.为了安全起见,我可以"选择两者".但是由于这种情况曾经发生过一次,我担心它会继续发生,并最终在我的故事板文件的末尾有一长串的这些segue引用.

只是想知道是否有人对文件中的这些标签非常了解,或者我是否应该盲目地继续"选择两者"并忽略该问题.

谢谢,-Dan.

And*_*ger 60

故事板中的每个视图控制器都有"模拟指标",您可以在属性检查器中看到它:

在此输入图像描述

推断出其中一些指标(因此,推断指标).

正如@thesystem所提到的,如果给定的视图控制器是多个segue的目标,则segue的源视图控制器的模拟度量之间可能存在差异.为了解决这些差异,IB在解析目标视图控制器的推断指标时选择了一个segue来打破平局.

@ rick-pastoor的结论是,删除整个inferredMetricsTieBreakers部分是安全的,因为IB可以选择不同的打破平局.但是,无法保证新的断路器能够在IB中产生相同的布局结果.*

例如,我有一种情况,根据打破平局的情况,IB中显示的视图控制器有或没有状态栏.在两种情况下,其视野保持568pts的高度,使得顶部布局指南的位置保持变化.这对于限制在顶部布局指南中的视图帧的其他不期望的(并且在很大程度上无意义的)改变是滚雪球.

基于这些观察结果,不建议选择新的和旧的推断指标集.相反,删除两个集合,然后在IB中打开故事板以允许在提交合并之前断开绑定.为了避免由于打破平局段的变化而导致的不期望的帧更改,请为目标视图控制器的相关模拟度量选择"推断"以外的某些值.这将确保IB生成一致的布局结果.

*运行时的结果应该相同,除非在取消归档视图后立即依赖初始布局的逻辑.


Ric*_*oor 37

同样的事情发生在这里.使用"同时选择"方法后,我的故事板文件出错.发现在故事板中搜索segue引用会导致在该inferredMetricsTieBreakers部分中提到的一个segue .从列表中删除segue解决了我的破坏构建.

为了试图找出它的inferredMetricsTieBreakers作用,我尝试先删除整个部分.打破我的构建.接下来我删除了所有项目.在构建期间,Xcode在我的列表中添加了2个新的和不同的segue(在合并之前我有3个).我正在构建的应用程序运行正常.

我的结论是:删除所有项目并执行干净的构建是安全的.这将使您的故事板保持干净.

  • 任何人都有一个概念`推断的MetricsTieBreakers`甚至做什么?删除和继续前进似乎有点可怕 (2认同)