2017-04-03 41 views
2

我一直在研究我的項目時,突然間我沒有編譯了,它仍然在編譯swift源文件中等待......我清理了項目,文件夾,刪除了應用程序並沒有任何東西。有什麼方法可以知道發生了什麼?編譯swift源文件卡住

+0

什麼版本的Xcode? –

+0

關閉Xcode並運行:'rm -frd〜/ Library/Developer/Xcode/DerivedData'來清理DerivedData目錄 –

+0

@alejandro如果你有大數組或字典文字,它有助於將它們分解爲更小的文字並將它們組合起來再次使用之前:Swift編譯器很容易在大文字上窒息。 – Moritz

回答

8

有沒有什麼辦法知道發生了什麼?

是的。進入Report Navigator,這是由導航器窗格右上方的小氣泡選擇的那個。它會給你一個你已經完成的所有操作的列表,比如構建和測試並運行。當前版本將位於窗格的頂部。點擊它。

在主編輯器中,您會在頂部看到一些按鈕,也許會顯示一些消息。點擊All Messages按鈕,它會顯示當前版本的樹形視圖。底線將是構建系統現在正在做的事情。如果它沒有改變(即出現新的線),則構建卡住。

幾乎可以肯定底線將是類似於Compile SomeFile.swift。假設是這樣,你現在可以分析問題。 Swift編譯器通常停留在推斷複雜表達式的類型上。分類的方法是註釋整個文件,然後添加行,直到問題再次出現。確保你總是添加足夠的回來,以便文件無誤地編譯。

很明顯,你添加回來的最後一行是導致問題的那一行。通常它是一個表達式,它將字符串與導致問題的非字符串連接在一起。

1

當我將字典更改爲[String:String]問題得到解決時,問題出現在字典[String:Any]中。很奇怪..

+0

這可能是類型推斷變得困惑。 – JeremyP