ios除錯技巧

2021-06-22 18:39:51 字數 2208 閱讀 5921

自動預編譯(針對全工程)

config.h

在逗號和__va_args__之間的雙井號,除了拼接前後文字之外,還有乙個功能,那就是如果後方文字為空,那麼它會將前面乙個逗號吃掉。

//

網路介面部分,get\post路徑

//查三個點與__va_args__關係,自定義nslog

#ifdef debug

#define dmlog(...) \nslog(

@"%s %@

",__pretty_function__,[nsstring stringwithformat:__va_args__])

#else

#define dmlog(format,...)\

do \

while(0

)#endif

在*-prefix.pch檔案上#import "config.h"

2.螢幕適配

#define mainframe [uiscreen mainscreen].bounds

#define width [uiscreen mainscreen].bounds.size.width

#define heitht [uiscreen mainscreen].bounds.size.height

//

除錯技巧1

nslog(@"檔名:%s,

%d行,方法%s

",__file__,__line__,__func__);//

檢測呼叫哪個方法

dmlog(

@"123");

dmlog(

@"%@

",@"

123"

);

/*//除錯技巧2條件斷點

for (int i = 0; i < 10 ; i++)

//除錯技巧3main函式下添異常斷點

nsmutablearray *marr = [[nsmutablearray alloc]init];

//[marr addobject:nil];

[marr addobject:@"67"];

nsstring *str1 = @"123";

*///除錯4控制台命令

//除錯5非arc環境下異常

nsmutablestring *str3 =[[nsmutablestring alloc]init];@"a

"];@"b

"];@"c

"];dmlog(

@"str3 = %@

",str3);

/*[str3 release];

sleep(5);

[str3 release];

[str3 release];

[str2 release];

*///

6異常處理

//自定義異常原因,丟擲異常

float result = 0

;

float b = 0

; result = 10 /b ;

n***ception *ex = [[n***ception alloc]initwithname:@"

mathexception

" reason:@"

除數不為0

"userinfo:nil];

@throw ex;

nsobject *stu =nil;

nsmutablearray *arr =[[nsmutablearray alloc]init];

@try

//oc不常用,耗效能

4.debug除錯查考:

iOS 除錯技巧(一)

很多人給工程除錯時,每個介面都寫dealloc,能達到效果,未免有些麻煩。下面介紹乙個小小例項 控制器寫個分類,用runtime方法交換。一 控制器 view分類 1.新建分類 import uiviewcontroller xycontroller.h 2.m引入標頭檔案 import 3.實現如...

iOS 斷點除錯小技巧

disable breakpoints 是讓你的斷點不能用 delete breakpoints 是刪除所有斷點 在專案執行的時候,有時候會莫名其妙有斷點,但是顯示沒有斷點,這時候你只要刪除所有斷點就可以正常執行了 除錯bug總有崩潰的地方,這裡有乙個辦法可以使得程式斷點出現在你有問題的部分 就是下...

iOS開發的除錯技巧

關於本文 1 模擬器的快捷鍵 2 覆蓋安裝注意事項 3 給模擬器相簿增加 4 模擬器中程式的資料 5 安裝舊版本的模擬器 6 模擬慢網速 7 異常斷點與符號斷點 1 模擬器的快捷鍵 常用的模擬器快捷鍵 cmd 1 2 3 可以切換模擬器的顯示比例。xcode9.0之後的模擬器可以自由縮放 opt s...