国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

XCODE Debug模式資料整理

2020-07-26 03:05:15
字體:
來源:轉載
供稿:網友

 在iOS開發中, 大多時候需要在debug 模式下調試,這里就整理下Debug 的知識

 1,Debug和Release版本區別?

眾所周知,我們進行iOS開發,在Xcode調試程序時,分為兩種方式, Debug 和 Release ,在Target的Setting中相信大家應該看到很多選項都分為 Debug 和 Release ,方便我們分別設置,滿足調試和發布的不同需求。

Release是發行版本,比Debug版本有一些優化,文件比Debug文件小 Debug是調試版本,Debug和Release調用兩個不同的底層庫。通俗點講,我們開發者自己內部真機或模擬器調試時,使用Debug模式就好,等到想要發布時,也就是說需要大眾客戶使用時,需要build Release版本,具體區別如下:

一、Debug是調試版本,包括的程序信息更多

二、只有Debug版的程序才能設置斷點、單步執行、使用TRACE/ASSERT等調試輸出語句

三、Release不包含任何調試信息,所以

體積小、運行速度快

抽刀斷Bug

斷點,(我求你們不要想到張敬軒,阿軒他容易么,小受又怎么了?你們這幫人真是的!!),我要說的斷點是BreakPoint!基本上不是殘廢的IDE都具有斷點調試功能吧!尤其是XCode,我們家的IDE斷點調試功能可是強中又是強中手!在這之前大家可以先了解一下哈子是斷點?它怎么實現的?工作原理怎么樣的?博主就獻丑說說自己的理解吧,斷點,顧名思義就是從前有一個點,后來它斷了,謝謝,我的故事講完了。哎喲還不服,這些基礎常識的東西自己不會查?你還真的臉皮厚上天了去了,還要博主給你查喲,自己查去!

普通操作

如圖3

基本的斷點操作如下

圖4

 

點擊那個黑列列就創建了一個斷點,再次點擊就臨時取消這個斷點(但是不刪除),長按那個斷點拖出去就刪除了(mac os的系統工程師就是稀飯拖動的快感),當然也可以右鍵那個創建的斷點,會彈出相應地菜單。

當然也還可以監視某個變量!

圖5

在對象視圖中,右鍵某個對象,點擊“Watch ‘XXX'”就完成XXX對象的監視了。

這里我監視了lab這個UILabel的變量,每當這個變量進行更新它的信息就會被打印到控制臺。
好吧!我們最基本的創建斷點的工作已經學會了,Xcode舒服在什么地方呢?就是不分Debug模式和Run模式的,可以說是無縫切換的,你只要沒有創建斷點,那么就是Run的正常模式,如果創建了斷點并且運行到斷點處,就自動進入Debug模式咯,不像某EC開頭的IDE,控制面板就像開飛機的一樣,幾萬個按鈕以為很強大,其實只用了Run和Stop,還有什么Debug模式,App模式……,果然Xcode的優越感在對比中更加強烈了,舒服到極點呀,就像夏天的海風拂過菊花,嗯是的 就是那種感覺!
我們創建好了斷點,運行到斷點就自動停下來了,像這樣:

圖6

這些Debug的最基本操作技能是每一個入門的iOS開發者都要掌握的,應該當成一種本能,就像狗愛吃翔一樣(噢 對不起 博主不是歧視狗的意思,博主也養過狗,很二逼但是從不吃翔!真的據我所知它從來不吃翔的,這里只是比喻只是比喻)。

 全局斷點(Global BreakPoint)

有時候在程序出錯的時候不能能準確定位到奔潰的那一行代碼,而是直接跑到main循環或者Appdelegate里面, 或者會給你這樣的提示:

EXEC_BAD_ACCESS:

是不是有種想哭的沖動?尼瑪~至少給我一些堆棧信息也好呀~……這個時候你千萬不要砸鼠標和鍵盤哦,一切都是主機在運行,你砸鼠標和鍵盤有什么用呢?應該是踢主機呀~~,現在有了全局斷點,娘親再也不擔心你砸鼠標了,你只需要這樣:

圖7

在Debug導航面板進行上圖的操作,你就建立了全局斷點,這樣只要遇到錯誤,debug程序就會自動定位到棧底的信息,也就是你最先出錯的代碼的那一行,這樣你就可以快樂的debug拉~~

 條件斷點(Condational Breakpoints)

從前有一個游戲,叫做擼啊擼,有些玩家他們知道怎么操作,會放技能會走路,但是他們不知道買裝備,玩了一局下來,鞋子小刀都沒有買。我為什么講這個故事呢?因為很多小朋友學東西和玩游戲一樣,看完前面的幾種調試技能,就以為自己已經

主站蜘蛛池模板: 德州市| 桦南县| 连州市| 电白县| 兴化市| 皮山县| 平顶山市| 闽侯县| 石城县| 鹰潭市| 宜州市| 仪陇县| 那曲县| 高尔夫| 呼图壁县| 连云港市| 科技| 普格县| 沅江市| 山东省| 霍林郭勒市| 麻城市| 石河子市| 乐山市| 阿鲁科尔沁旗| 哈尔滨市| 葵青区| 马关县| 长沙县| 色达县| 阿勒泰市| 曲松县| 清水河县| 湟源县| 江口县| 宣汉县| 馆陶县| 宁乡县| 河源市| 河源市| 东平县|