2012-10-08 16 views
38

每當我在故事板文件中遇到衝突時,通常我都可以解決它。但是,我有一個問題,現在在兩週內出現兩次。與故事板文件中的inferredMetricsTieBreakers合併衝突

在我的故事板文件的最底部,我看到一個名爲「inferredMetricsTieBreakers」塊,用一束包含在「SEGUE」標籤。似乎我本地回購股票中的某些股票與遠程回購股票中的另一股股票相沖突。爲了安全起見,我可以「選擇兩者」。但是,既然這發生過一次,恐怕它會繼續發生,並且最終在故事板文件的末尾有一長串這樣的segue引用。

只是想知道,如果有人是密切知識淵博有關文件中這些標籤,還是我應該只是一味地繼續只是「同時選擇」,而忽略了問題。

謝謝, -Dan。

回答

34

同樣的事情發生在這裏。在使用「選擇兩個」方法後,在故事板文件中出現錯誤。發現在故事板中搜索segue引用導致在inferredMetricsTieBreakers部分中提到了一個segue。從列表中刪除segue解決了我的破壞構建。

要試圖找出這inferredMetricsTieBreakers做什麼,我試着先刪除整個部分。打破我的構建。接下來我刪除了所有項目。在構建期間,XCode向我的列表中添加了2個新的不同的segues(在合併之前,我有3個)。我正在構建的應用程序工作正常。

我的結論是:刪除所有項目並執行清理構建是安全的。這將保持你的故事板清潔。

+1

任何人都有一個概念'inferredMetricsTieBreakers'甚至做什麼?只是刪除和繼續前進似乎有點可怕 –

+0

@race_carr它與故事板segues。如果有疑問請保留HEAD並重新添加新的賽段。 –

2

它看起來像是在故事板中出現一個視圖控制器,它通過segues連接兩個或多個其他視圖控制器,並將它的模擬度量設置設置爲「推測」,但Xcode無法確保推斷的方法是準確的一個度量設置(橫向或縱向)。

我通過改變模擬度量所有控制器「推斷」和所有的度量是從具有固定的模擬度量設置爲「風景」的控制器推斷固定它。之後,我從部分(但不是該部分本身)中刪除了tie breaker breaker seg。

50

在情節串連圖板每個視圖控制器具有「模擬度量」,其可以在屬性檢查員,請參閱:

enter image description here

一些這些度量被推斷(因此,推斷指標)。

正如@thesystem提到的,如果一個給定的視圖控制器是多發性塞格斯的目的地,有可能是塞格斯的源視圖控制器的模擬度量之間的差異。爲了解決這些差異,IB在解析目的地視圖控制器的推斷的度量時挑選一個segue來打破平局。

@ rick-pastoor的結論是可以安全地移除整個inferredMetricsTieBreakers部分是正確的,因爲IB可以選擇不同的打破僵局的賽段。但是,並不能保證新的平局結果會導致IB的佈局結果相同。*

例如,我有一種情況,在這種情況下,根據打破僵局的賽格,顯示一個視圖控制器在IB中有或沒有狀態欄。在這兩種情況下,其視圖都保持在568pts的高度,這樣頂層佈局指南的位置不斷變化。這對被限制在頂層佈局指南中的視圖幀進行了其他不受歡迎的(並且很大程度上沒有意義的)變化。

基於這些觀察結果,不推薦選擇推斷的新舊指標集合。相反,刪除這兩個集合,然後在IB中打開故事板以允許在提交合並之前斷開關係。爲避免由於改變tie-breaking segue而導致不希望的幀更改,請爲目標視圖控制器的相關模擬度量選擇除「推測」之外的某個值。這將確保IB生成一致的佈局結果。

*運行時的結果應該是相同的,除非在視圖未存檔後立即依賴於初始佈局的任何邏輯。

+0

非常深思熟慮,謝謝 – QED

0

將度量從推斷更改爲自由格式(Xcode8,Swift3)。解決了我的問題。