2011-08-11 13 views
20

Naprawdę podstawowe pytanie, niedawno zacząłem badać Cel C i Próbowałem zepsuć jeden przykładowy kod. Jednak dla celów debugowania chcę wydrukować wartość zmiennej NSString na konsoli. Jak to osiągnąć?Jak wydrukować wartość zmiennej przez NSLog?

Zasadniczo jestem programistą Java, więc szukam czegoś podobnego jak ...

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

Moja zmienna w tym języku obcym (Obj-C) jest ...

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

Każda wskazówka zostanie doceniona!

Dziękuję

Odpowiedz

46

Całkiem proste:

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

mam skrót uzupełniania kodu dla tego: 'NSLog (@ "[% @% @]", NSStringFromClass ([własna klasa]), NSStringFromSelector (_cmd)); 'zauważ, że daje ci nazwę klasy, ** NOT ** plik, w którym jesteś. Jeśli masz bogatą hierarchię dziedziczenia (większość nie), może to być w pliku nadklasy, gdy jest napisane "[nazwa klasy podklasy]" – bshirley

+0

Jeśli znajdziesz odwołanie do klasy NSString (http://developer.apple.com/ biblioteka/mac/# documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html) i znajdź 'stringWithFormat:', zawiera linki do [Formatowanie obiektów typu String (podstawy)] (http: // developer. apple.com/library/mac/#documentation/Cocoa/Conceptual/Strings/Articles/FormatStrings.html#//apple_ref/doc/uid/20000943) oraz [Specyfikatory formatowania ciągów] (http://developer.apple.com/ biblioteka/mac/# documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html # // apple_ref/doc/uid/TP40004265) - przeczytaj je! – bshirley

+0

również zauważyć, że w powyższym przykładzie (i przy użyciu 'po' w debugerze), metoda '- (NSString *) description;' jest wywoływana na obiekcie. Możesz zastąpić tę metodę, aby zapewnić coś interesującego. (Łatwym sposobem jest zrzucenie go do słownika i wywołanie 'description' w słowniku – bshirley

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

podstawie typu danych% @ zmian następująco

For Strings u use %@ 
For int u use %i 
For float u use %f 
For double u use %lf 
Powiązane problemy