1.折疊代碼
焦點在方法的實現體的方法名上,按comman鍵,則整個函數會被框住。用來標誌這個方法的起點和終點
此時單擊,出現
在選單裡,有個Fold,可以用來折疊方法,這個折疊現在有個動畫效果
在其它上面點擊
常用的重構方式都已經集成在這個右鍵彈出菜單中了,可見,XCode9對於重構的支持度又增加了,以後重構代碼將更加方便快捷
在XCode9之前,在變量或方法上,按CMD+單擊,是直接Jump to Definition,但是現在,是彈出這個菜單,對於跳轉到變量的定義,就多了一步了,開始可能會覺得不方便
對於想直接跳轉到變量定義,現在是 control+command+單擊
當然,如果你還是覺得以前的cmd+單擊 跳轉到變量定義,你更習慣,可以在
更改為以前那種行為
2.關於警告
我們定義一個不帶參數的block,通常是如下的方式
1
| typedefvoid (^UpdateSwichBtnBlock)();
|
在xcode9中會提示一個警告
1
2
| This block declaration is not a prototype Insert ‘ void ' |
解決方式可以是如下的幾種
1
| typedefvoid (^UpdateSwichBtnBlock)( void ); |
但是這樣,很多第三方要改,涉及的面太大了,目前可能不太適合,雖然這個是趨勢.
或者,如果只是很少的地方,也可以使用
1
2
3
4
| #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wstrict-prototypes" typedefvoid (^UpdateSwichBtnBlock)(); #pragma clang diagnostic pop |
徹底的暫時解決所有這種警告的方式
在工程的設置中
設置為NO,則這些警告就消失了
3.重構相關
對一個方法或者變量的重命名,在方法上CMD+單擊,出現的選單,選擇rename
可以看到,它把重命名會出現的改動,都動畫折疊起來,讓你更有概念,將會影響哪些,更直觀!
4.cmd +/- 可以用來調整編輯器的字體大小了
在展示PPT的時候將很有用
5.新的構建系統
這個新的構建系統現在還只是Preview,它是純swift編寫的,據說對編譯速度的提升幫助很大,不過目前並沒有成為默認,蘋果說不遠的將來將會成為默認的Build .可以參考蘋果的官方文檔xcode_9.html
這裡有個 New Build System(Preview)
6.crash可以直接在本機上看到了
當然了,這要用戶在機器上允許,還有你提交到appstore時候允許了才會有.7.runtime問題檢測
在8中,已經包含了Address Scanitizer和Thread Scanitizer,在Xcode9中,又新增了Undefiner Behavior Scanitizer,它可以實時的檢測一系列的問題.不過我們更能明顯感受到的是Main Thread Checker,它可以在運行時確保你沒有把UI更新代碼寫在了非主線程中
例如,程式中
可見還是很強大的,雖然我們沒有Fabric的源碼,但是其內部調用了[UIApplicationsharedApplication].statusBarOrientation],還是被檢測到了
當然了,如果你想關掉它,可以在 scheme editor中操作
8.模擬器可以多開了,並且,模擬器可以登錄
不僅如此,現在模擬器也可以登錄你的appid了,這樣,就很方便的同步聯繫人等信息到模擬器上了,以前要測試聯繫人相關的功能,還要自己一個個的新建,現在就方便多了
還有,如果開啟了Photo的Share,那麼模擬器中應該也能同步照片過來了,以前那種一個個的導入圖片的方式終於可以說再見的時候了
模擬器現在可以任意的調整大小了,不得不說這個功能太酷了
登錄appid後,Files就可用了,可以瀏覽到你的iCloud Drive中的內容了,對於要共享文件到模擬器的需求來說,也變得超級方便
模擬器的外觀樣式也回歸了,直接是iPhone的外觀了,以前可能是因為模擬器不能任意調整大小,所以才沒外觀的吧
當然了,你可以去掉外觀皮膚. 在模擬器的Window show Device Bezels,去掉選項就和以前一樣了
9.無線開發
這個只支持ios11的機器,很簡單,只要在Device那打開支持就行.
10.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的默認行為改為建立對應的實際文件夾了吧
11.不常用的更新
Server & Bots
現在XCode內置了一個XCode Serever用於 持續集成,因為很少用到,也就不展開了
沒有留言:
張貼留言