2011-08-11 9 views
20

Una domanda molto semplice, ho recentemente iniziato ad esplorare Objective C e cercando di incasinare un codice di esempio. Tuttavia, solo per scopi di debug, desidero stampare il valore della variabile NSString sulla console. Come ottengo questo?Come stampare il valore di una variabile da NSLog?

Fondamentalmente io sono uno sviluppatore Java, quindi sto cercando qualcosa di simile a ...

String hello = "world!"; 
System.out.println(hello); 

mio variabile in questa lingua straniera (Obj-C) è ...

NSString *hello = ...calling a method to return string... 

Ogni suggerimento sarà apprezzato!

Grazie

risposta

46

Abbastanza semplice:

NSLog(@"Value of hello = %@", hello); 
+0

Ho un collegamento completamento del codice per questo: 'NSLog (@ "[% @% @]", NSStringFromClass ([auto classe]), NSStringFromSelector (_cmd)); 'nota che ti dà il nome della classe, ** NON ** il file in cui ti trovi. hai una ricca gerarchia di ereditarietà (la maggior parte no), potrebbe essere in un file superclass quando dice "[subclass methodName]" – bshirley

+0

Se trovi il [riferimento alla classe NSString] (http://developer.apple.com/ library/mac/# documentation/Cacao/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html) e trova 'stringWithFormat:', fornisce collegamenti a [Formatting String Objects (le basi)] (http: // developer. apple.com/library/mac/#documentation/Cocoa/Conceptual/Strings/Articles/FormatStrings.html#//apple_ref/doc/uid/20000943) e [String Formatting Specifiers] (http://developer.apple.com/ library/mac/# documentation/Cacao/Concettuale/Archi/Articoli/formatSpecifiers.html # // apple_ref/doc/uid/TP40004265) - sfogliali! – bshirley

+0

notate anche che nell'esempio sopra (e usando 'po' nel debugger), il metodo' - (NSString *); 'viene invocato sull'oggetto. Puoi sovrascrivere quel metodo per fornire qualcosa di interessante. (Il modo più semplice è scaricarlo in un dizionario e invocare 'description' sul dizionario: – bshirley

10
NSLog(@"%@",hello); 

in base al tipo di dati% @ cambia come segue

For Strings u use %@ 
For int u use %i 
For float u use %f 
For double u use %lf 
Problemi correlati