一直也沒時(shí)間看xcode9的一些坑闪金,今天看了一下羡滑,寫一下個(gè)人對xcode9的一些改變的總結(jié)丝格,希望對你有用聪姿。
1碴萧、代碼折疊
在XCode9之前,在變量或方法上,按comman+單擊
,是直接Jump to Definition,但是現(xiàn)在,是彈出這個(gè)菜單,對于跳轉(zhuǎn)到變量的定義,就多了一步了 。焦點(diǎn)在方法的實(shí)現(xiàn)體的方法名上,按comman鍵,則整個(gè)函數(shù)會(huì)被框住.用來標(biāo)志這個(gè)方法的起點(diǎn)和終點(diǎn)
此時(shí)單擊,出現(xiàn)菜單
在對應(yīng)的方法選中的時(shí)候也會(huì)出現(xiàn)彈框
當(dāng)中的fold方法相當(dāng)于以前的將方法折疊成一行末购,不過xcode9取消了這些而已
開始大家可能會(huì)覺得不方便破喻,對于想直接跳轉(zhuǎn)到變量定義,現(xiàn)在是 control+command+單擊
當(dāng)然,如果你還是覺得以前的cmd+單擊 跳轉(zhuǎn)到變量定義,你更習(xí)慣,可以在這里設(shè)置一下就變?yōu)樵瓉淼姆绞搅恕?/p>
2、警告
有可能你定義block可能會(huì)出現(xiàn)這樣的警告盟榴,或者是原來的代碼出現(xiàn)了這樣的警告
我們定義一個(gè)不帶參數(shù)的block,通常是如下的方式
typedef void(^federationTokenGetter)();
在xcode9中會(huì)提示一個(gè)警告
解決方式可以是如下的幾種
1)低缩、直接改代碼
typedef void(^federationTokenGetter)(void);
2)、第一種方式這樣,很多第三方要改,涉及的面太大了,目前可能不太適合,雖然這個(gè)是趨勢.或者,如果只是很少的地方,也可以使用這種方式曹货。還有就是徹底的暫時(shí)解決所有這種警告的方式咆繁,如下:
在工程的 Build Settings 中的
將Yes(Error)設(shè)置為NO,則這些警告就消失了
3、xcode9可以用來直接調(diào)整編輯器的字體大小了
在展示代碼的時(shí)候?qū)⒑苡杏?顶籽,快捷鍵如下
cmd + /-
4玩般、Source Control的極大增強(qiáng)
XCode內(nèi)置的git系統(tǒng)感覺是越來越強(qiáng)大了,感覺以后可以拋棄三方的了
5、xcode9支持Github賬戶了
XCode - Preferences -Accouts 可以登錄你的GitHub賬戶,登錄后如下
登錄后,通過Xcode的菜單
Source Control 最下方的clone,就可以clone你的github上的工程了,是不是非常方便
打開任意一個(gè)git工程,提供了一列新的 Show the Source COntrol navigator
這里列出來了你的branch的相關(guān)信息,可以很方便的切換分支,等等git操作
當(dāng)然你也可以進(jìn)行一些分支的操作
有人問如何切換分支礼饱,這里貼出來一下
6坏为、Folder和Group的同步性
之前,我們在XCode中,更改Folder的名字,在FInder中工程對應(yīng)的文件夾的名字并不會(huì)同步的改變,這會(huì)造成我們重命名文件夾變得非常不方便,往往要先在XCode中移除,然后在Finder中重命名,再添加回Xcode,現(xiàn)在 在Xcode9中重名命Folder,Finder中的也同步的改變了
我們之前建議一個(gè)虛擬的group,并不會(huì)在對應(yīng)的文件夾中建立真實(shí)的目錄,當(dāng)然,這可能是你需要的,也可能是你不需要的功能.在9中,默認(rèn)行為改變了.變成了會(huì)建立對應(yīng)的真實(shí)文件夾.如果還想像之前那樣只是建立虛擬的group,需要選擇New Group without Folder
你可能你會(huì)擔(dān)心,區(qū)分不了這個(gè)group到底是虛擬的,還是實(shí)際的
放心,蘋果給出了標(biāo)識來區(qū)分的,虛擬的左下角有個(gè)小的三角形,如圖
當(dāng)你移動(dòng)一個(gè)Group的時(shí)候真實(shí)的文件夾,它會(huì)同步的把對應(yīng)的真實(shí)文件夾中的所有內(nèi)容也移動(dòng)到對應(yīng)的位置,這個(gè)極大的方便了我們后期調(diào)整工程的目錄結(jié)構(gòu),之前調(diào)整那才叫痛苦,在工程中調(diào)整了后,工程中的結(jié)構(gòu)和真實(shí)的文件夾下的對應(yīng)不上,以后不會(huì)出現(xiàn)這種情況了究驴;至于虛擬文件的話,文件在哪里的話仍然會(huì)在哪里匀伏。
7洒忧、模擬器的調(diào)整
模擬器可以多開了,并且,模擬器可以登錄
模擬器的外觀樣式也回歸了,直接是iPhone的外觀了。同時(shí)也可以任意的調(diào)節(jié)大小够颠。
當(dāng)然如果你不喜歡這樣的外觀熙侍,也可以調(diào)整成原來的樣式
現(xiàn)在模擬器也可以登錄你的appid了,這樣,就很方便的同步聯(lián)系人等信息到模擬器上了,以前要測試聯(lián)系人相關(guān)的功能,還要自己一個(gè)個(gè)的新建,現(xiàn)在就方便多了
如果開啟了Photo的Share,那么模擬器中應(yīng)該也能同步照片過來了,以前那種一個(gè)個(gè)的導(dǎo)入圖片的方式終于可以說再見的時(shí)候了。
8履磨、打包的調(diào)整
打包xcode9也做了一些調(diào)整蛉抓,變得更加簡潔,功能也增強(qiáng)了剃诅,直接上圖說明巷送。
crash可以直接在本機(jī)上看到了
當(dāng)然了,這要用戶在機(jī)器上允許,還有你提交到appstore時(shí)候允許了才會(huì)有.
9、xcode9無線調(diào)試
xcode9可以無限調(diào)試矛辕,那么需要有哪些條件呢笑跛?
條件:
Mac OSX 10.12.6以及以上的系統(tǒng)
手機(jī)要是 iOS 11 以上系統(tǒng)
xcode需要升級到 Xcode 9以上
首先保證Mac 和 iPhone 通過wifi連接的是同一個(gè)路由器聊品,也即同一個(gè)局域網(wǎng)飞蹂。
接下來需要這樣操作
運(yùn)行成功之后就可以調(diào)試了,不過你可能會(huì)遇到這些問題:
1杨刨、
這個(gè)需要你重新插拔你的設(shè)備
2晤柄、可能會(huì)報(bào)類似這樣的錯(cuò)誤擦剑。
Failed to initiate service connection to simulator Error returned in reply: Connection invalid
可能原因是:你的手機(jī)剛開始設(shè)置過密碼妖胀,然后將手機(jī)密碼功能關(guān)閉了,你需要打開手機(jī)密碼功能惠勒,然后再進(jìn)行調(diào)試赚抡,如果成功以后就不影響了。這個(gè)密碼功能就是手機(jī)中設(shè)置->Touch ID 與密碼功能.
這個(gè)我遇到的是這種情況纠屋,然后這樣解決的涂臣。
10、一些問題
1)售担、拖入的文件不會(huì)自動(dòng)添加到工程(target)里面赁遗。
拖入第三方庫不能自動(dòng)編譯,包括自己別的項(xiàng)目中寫到的一些文件拖入族铆,會(huì)導(dǎo)致類似這樣的錯(cuò)誤岩四。
解決方法有這幾種:
1>、手動(dòng)一個(gè)個(gè)加入
2>哥攘、切換到xcode8版本剖煌,導(dǎo)入后材鹦,再切換回來,這樣就得下載一個(gè)xcode8耕姊,需要裝兩個(gè)xcode桶唐,比較蛋疼,希望蘋果下一版這個(gè)問題能解決茉兰。
3>尤泽、有個(gè)哥們這樣回復(fù),大家可以試一下邦邦。
大概知道的就這些安吁,如果你有遇到一些坑,或者發(fā)現(xiàn)一些新大陸燃辖,希望留言鬼店,我自己再加上去。
希望大家能提出寶貴的意見黔龟,可以給我留言妇智,也可以發(fā)郵件到我的郵箱:namezyqyx@163.com
謝謝大家,氏身,不勝感激巍棱。