Czy istnieje sposób, aby wyświetlić pary klucz / wartość zmiennej NSDictionary za pomocą debugera Xcode? Oto zakres informacji po całkowitym rozwinięciu w oknie zmiennej:
Variable Value Summary
jsonDict 0x45c540 4 key/value pairs
NSObject {...}
isa 0xa06e0720
Spodziewałem się, że pokaże mi każdy element słownika (podobnie jak zmienna tablicowa).
objective-c
cocoa
xcode
debugging
Dara Kong
źródło
źródło
Możesz kliknąć prawym przyciskiem myszy dowolną zmienną obiektu (ObjC lub Core Foundation) i wybrać „Drukuj opis do konsoli” (również w widoku Run-> Variables). Wypisuje wynik
-debugDescription
metody obiektu, która domyślnie wywołuje-description
. Niestety,NSDictionary
zastępuje to, aby utworzyć zbiór danych wewnętrznych, na których generalnie się nie obchodzi, więc w tym konkretnym przypadku rozwiązanie Craigb jest lepsze.Wyświetlane klucze i wartości również są używane
-description
, więc jeśli chcesz uzyskać przydatne informacje o swoich obiektach w kolekcjach i innych miejscach, nadpisanie-description
jest koniecznością. Generalnie wdrażam to w następujący sposób, aby dopasować format domyślnejNSObject
implementacji:źródło
Możesz użyć CFShow ()
NSMutableDictionary* dict = [[NSMutableDictionary alloc] init]; [dict setObject:@"foo" forKey:@"bar"]; [dict setObject:@"fiz" forKey:@"buz"]; CFShow(dict);
Na wyjściu zobaczysz
źródło
XCode 4.6 dodał następującą funkcjonalność, która może być pomocna
The elements of NSArray and NSDictionary objects can now be inspected in the Xcode debugger
Teraz możesz sprawdzić te typy obiektów bez konieczności drukowania całego obiektu w konsoli. Cieszyć się!
Źródło: http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/WhatsNewXcode/Articles/xcode_4_6.html
źródło
Kliknij swoją dyktę, a następnie kliknij małą ikonę „i”, powinno wystarczyć :-)
źródło
Jeśli chcesz wydrukować je w akcji punktu przerwania w nowoczesnym XCode (tak, jestem 10 lat po oryginalnym wpisie!), Użyj następującego wyrażenia punktu przerwania w akcji „Komunikat dziennika”:
@ myDictionary.description @
Poniżej znajduje się zrzut ekranu mojej akcji punktu przerwania, w którym zdarzenie zmiennej jest NSString, a zmienna contextData to NSDictionary, w którym rejestruję zawartość :
źródło
Możesz także użyć NSLog .
Możesz także przejść do obszaru debugowania lub xcode, a następnie dowiedzieć się,
All Variables, Registers, Globals and Statics
a następnie wybrać zmienną. Kliknij go prawym przyciskiem myszy. Następnie wybierzPrint description of "...."
Mam nadzieję, że to pomoże!
źródło