記錄變數值
你不應該在沒有像這樣的文字格式字串的情況下呼叫 NSLog
:
NSLog(variable); // Dangerous code!
如果變數不是 NSString
,程式將崩潰,因為 NSLog
需要一個 NSString
。
如果變數是 NSString
,它將起作用,除非你的字串包含%
。NSLog
將解析%
序列作為格式說明符,然後從堆疊中讀取垃圾值,導致崩潰甚至執行任意程式碼 。
相反,始終將第一個引數設為格式說明符,如下所示:
NSLog(@"%@", anObjectVariable);
NSLog(@"%d", anIntegerVariable);