XCode9的新變化

轉(zhuǎn)自:http://www.cocoachina.com/ios/20170922/20626.html

XCode9已經(jīng)隨著ios11的發(fā)布發(fā)布了,那么在這個XCode9版本中有哪些變化呢?

1 折疊代碼

焦點在方法的實現(xiàn)體的方法名上,按comman鍵,則整個函數(shù)會被框住.用來標志這個方法的起點和終點

此時單擊,出現(xiàn)菜單

在菜單里,有個Fold,可以用來折疊方法,這個折疊現(xiàn)在有個動畫效果

在其它上面點擊

常用的重構(gòu)方式都已經(jīng)集成在這個右鍵彈出菜單中了,可見,XCode9對于重構(gòu)的支持度又增加了,以后重構(gòu)代碼將更加方便快捷

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

對于想直接跳轉(zhuǎn)到變量定義,現(xiàn)在是 control+command+單擊

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

更改為以前那種行為

2 關(guān)于警告

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

1typedefvoid?(^UpdateSwichBtnBlock)();

在xcode9中會提示一個警告

1

2

This?block?declarationisnot?a?prototype

Insert?‘void'

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

1typedefvoid?(^UpdateSwichBtnBlock)(void);

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

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

1

2

3

4

#pragma?clang?diagnostic?push

#pragma?clang?diagnostic?ignored"-Wstrict-prototypes"

typedefvoid?(^UpdateSwichBtnBlock)();

#pragma?clang?diagnostic?pop

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

在工程的設(shè)置中

設(shè)置為NO,則這些警告就消失了

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

3 重構(gòu)相關(guān)

對一個方法或者變量的重命名,在方法上CMD+單擊,出現(xiàn)的菜單,選擇rename

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

4 cmd +/- 可以用來調(diào)整編輯器的字體大小了

在展示PPT的時候?qū)⒑苡杏?/p>

5 Source Control的極大增強

XCode內(nèi)置的git系統(tǒng)感覺已經(jīng)很強大了,感覺以后可以拋棄三方的了.

支持Github賬戶了

XCode - Preferences -Accouts 可以登錄你的GitHub賬戶,登錄后如下

登錄后,通過Xcode的菜單

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

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

打開任意一個git工程,

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

這里列出來了你的branch的相關(guān)信息,可以很方便的切換分支,等等git操作

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

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

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

雙擊任意一次提交記錄,

可以看到這次的詳細更改內(nèi)容

對于我們常用的git的merge tag等,也都內(nèi)置了強力的支持

第三方git客戶端如Tower何Source Tree,分分鐘要被拋棄的節(jié)奏呢.

6 新的構(gòu)建系統(tǒng)

這個新的構(gòu)建系統(tǒng)現(xiàn)在還只是Preview,它是純swift編寫的,據(jù)說對編譯速度的提升幫助很大,不過目前并沒有成為默認,蘋果說不遠的將來將會成為默認的Build .可以參考蘋果的官方文檔xcode_9.html

這里有個 New Build System(Preview)

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

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

8 runtime問題檢測

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

例如,代碼中

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

當然了,如果你想關(guān)掉它,可以在 scheme editor中操作

9 模擬器可以多開了,并且,模擬器可以登錄

不僅如此,現(xiàn)在模擬器也可以登錄你的appid了,這樣,就很方便的同步聯(lián)系人等信息到模擬器上了,以前要測試聯(lián)系人相關(guān)的功能,還要自己一個個的新建,現(xiàn)在就方便多了

還有,如果開啟了Photo的Share,那么模擬器中應(yīng)該也能同步照片過來了,以前那種一個個的導(dǎo)入圖片的方式終于可以說再見的時候了

模擬器現(xiàn)在可以任意的調(diào)整大小了,不得不說這個功能太酷了

登錄appid后,Files就可用了,可以瀏覽到你的iCloud Drive中的內(nèi)容了,對于要共享文件到模擬器的需求來說,也變得超級方便

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

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

10 無線開發(fā)

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

11 Folder和Group的同步性

之前,我們在XCode中,更改Folder的名字,在FInder中工程對應(yīng)的文件夾的名字并不會同步的改變,這會造成我們重命名文件夾變得非常不方便,往往要先在XCode中移除,然后在Finder中重命名,再添加回Xcode

現(xiàn)在 在Xcode9中重名命Folder,Finder中的也同步的改變了

我們之前建議一個虛擬的group,并不會在對應(yīng)的文件夾中建立真實的目錄,當然,這可能是你需要的,也可能是你不需要的功能.在9中,默認行為改變了.變成了會建立對應(yīng)的真實文件夾.如果還想像之前那樣只是建立虛擬的group,需要選擇New Group without Folder

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

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

當你移動一個Group的時候(虛擬的實際的都一樣),它會同步的把對應(yīng)的真實文件夾也移動到對應(yīng)的位置,這個極大的方便了我們后期調(diào)整工程的目錄結(jié)構(gòu),之前調(diào)整那才叫痛苦,在工程中調(diào)整了后,工程中的結(jié)構(gòu)和真實的文件夾下的對應(yīng)不上,以后不會出現(xiàn)這種情況了

這里發(fā)現(xiàn)XCode9的一個文件同步的bug

如圖,我們建立的工程如下

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

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

可以看到,xcode出問題了,本來我只是將xuni移動到Views下,可現(xiàn)在 真?zhèn)€的View1都移動了,導(dǎo)致SecondView消失了....

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

其實從上面來看,建立實際目錄更不容易出問題,可能這也是蘋果將New Group的默認行為改為建立對應(yīng)的實際文件夾了吧

不常用的更新

Server & Bots

現(xiàn)在XCode內(nèi)置了一個XCode Serever用于 持續(xù)集成,因為很少用到,也就不展開了

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市嘱腥,隨后出現(xiàn)的幾起案子劲绪,更是在濱河造成了極大的恐慌啦鸣,老刑警劉巖膛锭,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件放航,死亡現(xiàn)場離奇詭異语淘,居然都是意外死亡妇汗,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門掂摔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來术羔,“玉大人,你說我怎么就攤上這事乙漓∧羰荆” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵簇秒,是天一觀的道長鱼喉。 經(jīng)常有香客問我,道長趋观,這世上最難降的妖魔是什么扛禽? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮皱坛,結(jié)果婚禮上编曼,老公的妹妹穿的比我還像新娘。我一直安慰自己剩辟,他們只是感情好掐场,可當我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布往扔。 她就那樣靜靜地躺著,像睡著了一般熊户。 火紅的嫁衣襯著肌膚如雪萍膛。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天嚷堡,我揣著相機與錄音蝗罗,去河邊找鬼。 笑死蝌戒,一個胖子當著我的面吹牛串塑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播北苟,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼桩匪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了友鼻?” 一聲冷哼從身側(cè)響起傻昙,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎桃移,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體葛碧,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡借杰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了进泼。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蔗衡。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖乳绕,靈堂內(nèi)的尸體忽然破棺而出绞惦,到底是詐尸還是另有隱情,我是刑警寧澤洋措,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布济蝉,位于F島的核電站,受9級特大地震影響菠发,放射性物質(zhì)發(fā)生泄漏王滤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一滓鸠、第九天 我趴在偏房一處隱蔽的房頂上張望雁乡。 院中可真熱鬧,春花似錦糜俗、人聲如沸踱稍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽珠月。三九已至扩淀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間桥温,已是汗流浹背引矩。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留侵浸,地道東北人旺韭。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像掏觉,于是被迫代替她去往敵國和親区端。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內(nèi)容