2016-07-15 42 views
0

此問題發生在一個SpriteKit Xcode項目我的Xcode 7.3編譯器不斷突破,造成極長的生成和編譯時間

我和斯威夫特在那裏,一旦我的項目達到複雜,其中的一定水平的問題我有大量的類和方法,我的自動完成功能中斷,因此「跳轉到定義」停止工作,我的IDE被簡化爲基本TextEditor /記事本的實用性。

我的代碼顏色將完全變爲白色,這會對我的眼睛造成很大的壓力,這似乎只發生在我移除並添加大塊代碼時,因爲我看着我的CPU活動爬升高達75%在所有CPU內核上。

我覺得這開始發生時,我從9.3切換目標的iOS到8.0。這是編譯器試圖解釋舊的Swift語法的問題嗎?

我也會有情況我等待兩分鐘,小的改動來編譯,只爲打造因失敗「連接命令失敗,退出代碼」,這是很容易通過編譯兩次固定。

這裏是我的規格:

OS X 10.11.4

酷睿i7 SKYLAKE微架構4.0 GHz頻率

16 GB內存DDR4

256GB固態硬盤

我正在考慮建設一個運行帶有雙處理器的OS X的系統可能會緩解這個問題,因爲它可能需要2分鐘才能編譯不同於1行的代碼。

+0

你的文件與蘋果的錯誤報告? - 另外,你使用的是工具鏈嗎?這種行爲在Xcode 7.3和下載的Swift工具鏈中是完全正常的。 – matt

+0

我從第一天起就開始寫Swift,甚至找到我的方式來發佈一個應用程序,在蘋果甚至允許它之前用Swift 1.0測試版編寫。但最終放棄在重要項目中使用它。雖然它變得越來越好,而且蘋果致力於讓它成爲主要玩家,但它與Objective-C相比還是「新」。是的,它有很多優點,但總的來說,我不覺得值得這麼麻煩,因爲蘋果經常改變語法方式,不斷地做事。使用24GB RAM的四核iMac,我仍然覺得Xcode在Objective-C上很慢,更不用說Swift了。 –

回答

0

歡迎斯威夫特!偉大的語言,糟糕的工具。

說笑歸說笑,玩耍有幾個問題在這裏。首先,當SourceKit崩潰時,語法高亮消失。 SourceKit是一個可以快速解析Swift的庫,以便Xcode可以執行索引,語法高亮和代碼完成等功能。它比以前好很多(在Xcode中使用Swift 1.0有時候幾乎是滑稽的),但它還遠沒有完美。在SourceKit改進之前,您不會看到太多差異。

至於你的編譯時間,這是值得嘗試的東西像Swift Build Time Analyzer,看看哪些功能都採取了特別長的時間來編譯。最近,我通過刪除所有通過閉包設置的懶惰變量,將編譯時間減半。最近的一次編譯器更改對這類封閉進行了類型推斷,速度非常慢,所以每個編譯器都需要大約6秒的時間進行編譯。

0

好吧,我找到了一個解決方案,它解決了我的問題。

從變量名全部刪除表情符號& .Swift文件名

相反,蘋果的官方雨燕2.0的教材,不使用任何一種表情符號的東西像變量名斯威夫特文件名除非你知道你使用的表情符號是一個很老的表情符號(但即使如此,我也不會推薦它)

在AppCode中打開我的項目後,AppCode發生unicode問題,如foobar.swift等文件名。這非常麻煩,如果我在AppCode中打開並保存了一個具有預先存在的emojis的項目,它將在以後中斷Xcode。

因此要避免在代碼中使用表情符號,除非是像字符串:

let someString = "⬛️"