記錄變數值

你不應該在沒有像這樣的文字格式字串的情況下呼叫 NSLog

NSLog(variable);    // Dangerous code!

如果變數不是 NSString,程式將崩潰,因為 NSLog 需要一個 NSString

如果變數是 NSString,它將起作用,除非你的字串包含%NSLog 將解析%序列作為格式說明符,然後從堆疊中讀取垃圾值,導致崩潰甚至執行任意程式碼

相反,始終將第一個引數設為格式說明符,如下所示:

NSLog(@"%@", anObjectVariable);
NSLog(@"%d", anIntegerVariable);