XCode9的新變化,XCode9新變化

來源:互聯網
上載者:User

XCode9的新變化,XCode9新變化

XCode9已經隨著ios11的發布發布了,那麼在這個XCode9版本中有哪些變化呢?

1 摺疊代碼

焦點在方法的實現體的方法名上,按comman鍵,則整個函數會被框住.用來標誌這個方法的起點和終點

此時單擊,出現菜單

在菜單裡,有個Fold,可以用來摺疊方法,這個摺疊現在有個動畫效果

在其它上面點擊

常用的重構方式都已經整合在這個右鍵快顯功能表中了,可見,XCode9對於重構的支援度又增加了,以後重構代碼將更加方便快捷

在XCode9之前,在變數或方法上,按CMD+單擊,是直接Jump to Definition,但是現在,是彈出這個菜單,對於跳轉到變數的定義,就多了一步了,開始可能會覺得不方便

對於想直接跳轉到變數定義,現在是 control+command+單擊

當然,如果你還是覺得以前的cmd+單擊 跳轉到變數定義,你更習慣,可以在

更改為以前那種行為

2 關於警告

我們定義一個不帶參數的block,通常是如下的方式

1 typedefvoid (^UpdateSwichBtnBlock)();

在xcode9中會提示一個警告

 

12 This block declaration is not a prototypeInsert ‘void'

解決方式可以是如下的幾種

1 typedefvoid (^UpdateSwichBtnBlock)(void);

但是這樣,很多第三方要改,涉及的面太大了,目前可能不太適合,雖然這個是趨勢.

或者,如果只是很少的地方,也可以使用

 

1234 #pragma clang diagnostic push#pragma clang diagnostic ignored "-Wstrict-prototypes"typedefvoid (^UpdateSwichBtnBlock)();#pragma clang diagnostic pop

徹底的暫時解決所有這種警告的方式

在工程的設定中

設定為NO,則這些警告就消失了

不過這不是一種好習慣,只是暫時性的不讓提示這種類型的警告而已

3 重構相關

對一個方法或者變數的重新命名,在方法上CMD+單擊,出現的菜單,選擇rename

可以看到,它把重新命名會出現的改動,都動畫摺疊起來,讓你更有概念,將會影響哪些,更直觀!

4 cmd +/- 可以用來調整編輯器的字型大小了

在展示PPT的時候將很有用

5 Source Control的極大增強

XCode內建的git系統感覺已經很強大了,感覺以後可以拋棄三方的了.

支援Github賬戶了

XCode - Preferences -Accouts 可以登入你的GitHub賬戶,登入後如下

登入後,通過Xcode的菜單

Source Control 最下方的clone,就可以clone你的github上的工程了,是不是非常方便

上面還貼心的提供了搜尋方塊,如果你的github上的工程很多,也是很方便的定位的

開啟任意一個git工程,

提供了一列新的 Show the Source COntrol navigator

這裡列出來了你的branch的相關資訊,可以很方便的切換分支,等等git操作

在右邊的編輯框中,可以看到最上面一排

ALL, Last 24 hours ,Last 7 Days ,Last 30 Days

,還有一個Filter過濾框,可以非常方便的用來定位到我們需要尋找的提交記錄.

雙擊任意一次提交記錄,

可以看到這次的詳細更改內容

對於我們常用的git的merge tag等,也都內建了強力的支援

第三方git用戶端如Tower何Source Tree,分分鐘要被拋棄的節奏呢.

6 新的構建系統

這個新的構建系統現在還只是Preview,它是純swift編寫的,據說對編譯速度的提升協助很大,不過目前並沒有成為預設,蘋果說不遠的將來將會成為預設的Build .可以參考蘋果的官方文檔xcode_9.html

這裡有個 New Build System(Preview)

7 crash可以直接在本機上看到了

當然了,這要使用者在機器上允許,還有你提交到appstore時候允許了才會有.

8 runtime問題檢測

在8中,已經包含了Address Scanitizer和Thread Scanitizer,在Xcode9中,又新增了 Undefiner Behavior Scanitizer,它可以即時的檢測一系列的問題.不過我們更能明顯感受到的是Main Thread Checker,它可以在運行時確保你沒有把UI更新 代碼寫在了非主線程中

例如,代碼中

可見還是很強大的,雖然我們沒有Fabric的源碼,但是其內部調用了[UIApplicationsharedApplication].statusBarOrientation],還是被檢測到了

當然了,如果你想關掉它,可以在 scheme editor中操作

9 模擬器可以多開了,並且,模擬器可以登入

不僅如此,現在模擬器也可以登入你的appid了,這樣,就很方便的同步連絡人等資訊到模擬器上了,以前要測試連絡人相關的功能,還要自己一個個的建立,現在就方便多了

還有,如果開啟了Photo的Share,那麼模擬器中應該也能同步照片過來了,以前那種一個個的匯入圖片的方式終於可以說再見的時候了

模擬器現在可以任意的調整大小了,不得不說這個功能太酷了

登入appid後,Files就可用了,可以瀏覽到你的iCloud Drive中的內容了,對於要共用檔案到模擬器的需求來說,也變得超級方便

模擬器的外觀樣式也迴歸了,直接是iPhone的外觀了,以前可能是因為模擬器不能任意調整大小,所以才沒外觀的吧

當然了,你可以去掉外觀皮膚. 在模擬器的Window show Device Bezels,去掉選項就和以前一樣了

10 無線開發

這個只支援ios11的機器,很簡單,只要在Device那開啟支援就行.

11 Folder和Group的同步性

之前,我們在XCode中,更改Folder的名字,在FInder中工程對應的檔案夾的名字並不會同步的改變,這會造成我們重新命名檔案夾變得非常不方便,往往要先在XCode中移除,然後在Finder中重新命名,再添加回Xcode

現在 在Xcode9中重名命Folder,Finder中的也同步的改變了

我們之前建議一個虛擬group,並不會在對應的檔案夾中建立真實的目錄,當然,這可能是你需要的,也可能是你不需要的功能.在9中,預設行為改變了.變成了會建立對應的真實檔案夾.如果還想像之前那樣只是建立虛擬group,需要選擇New Group without Folder

你可能你會擔心,區分不了這個group到底是虛擬,還是實際的

放心,蘋果給出了標識來區分的,虛擬左下角有個小的三角形

當你移動一個Group的時候(虛擬實際的都一樣),它會同步的把對應的真實檔案夾也移動到對應的位置,這個極大的方便了我們後期調整工程的目錄結構,之前調整那才叫痛苦,在工程中調整了後,工程中的結構和真實的檔案夾下的對應不上,以後不會出現這種情況了

這裡發現XCode9的一個檔案同步的bug

,我們建立的工程如下

其中 xuni這個是一個虛擬目錄

這個時候,如果我們將整個 xuni移動到Views下,

可以看到,xcode出問題了,本來我只是將xuni移動到Views下,可現在 真箇的View1都移動了,導致SecondView消失了....

希望蘋果在下個版本中能解決這個問題

其實從上面來看,建立實際目錄更不容易出問題,可能這也是蘋果將New Group的預設行為改為建立對應的實際檔案夾了吧

不常用的更新

Server & Bots

現在XCode內建了一個XCode Serever用於 持續整合,因為很少用到,也就不展開了

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.