Objective-C Language Registrazione dei valori variabili


Esempio

Non dovresti chiamare NSLog senza una stringa di formato letterale come questa:

NSLog(variable);    // Dangerous code!

Se la variabile non è una NSString , il programma si bloccherà, poiché NSLog aspetta una NSString .

Se la variabile è una NSString , funzionerà a meno che la tua stringa non contenga un % . NSLog analizzerà la sequenza % come un NSLog formato e quindi leggerà un valore spazzatura fuori dallo stack, causando un arresto anomalo o addirittura l' esecuzione di codice arbitrario .

Invece, rendere sempre il primo argomento un identificatore di formato, come questo:

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