自動預編譯(針對全工程)
config.h
在逗號和__va_args__之間的雙井號,除了拼接前後文字之外,還有乙個功能,那就是如果後方文字為空,那麼它會將前面乙個逗號吃掉。
//在*-prefix.pch檔案上#import "config.h"網路介面部分,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
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...