Xcode 디버거를 통해 NSDictionary 변수의 키 / 값 쌍을 보는 방법이 있습니까? 변수 창에서 완전히 확장되었을 때의 정보 범위는 다음과 같습니다.
Variable Value Summary
jsonDict 0x45c540 4 key/value pairs
NSObject {...}
isa 0xa06e0720
사전의 각 요소 (배열 변수와 유사)를 표시 할 것으로 예상했습니다.
답변:
gdb 창 po
에서 객체를 검사하는 데 사용할 수 있습니다 .
주어진:
NSMutableDictionary* dict = [[NSMutableDictionary alloc] init];
[dict setObject:@"foo" forKey:@"bar"];
[dict setObject:@"fiz" forKey:@"buz"];
객체가 추가 된 후 중단 점을 설정하면 사전에있는 내용을 검사 할 수 있습니다.
(gdb) po dict
{
bar = foo;
buz = fiz;
}
물론 이것들은 NSString
멋지게 인쇄 되는 개체입니다. 다른 복잡한 개체와 YMMV.
개체 (ObjC 또는 Core Foundation) 변수를 마우스 오른쪽 단추로 클릭하고 "콘솔에 설명 인쇄"(실행-> 변수보기에서도)를 선택할 수 있습니다. 이것은 -debugDescription
기본적으로를 호출하는 obejct의 메소드 결과를 인쇄 합니다 -description
. 불행히도, NSDictionary
일반적으로 신경 쓰지 않는 많은 내부 데이터를 생성하기 위해 이것을 재정의 하므로이 특정 경우 craigb의 솔루션이 더 좋습니다.
표시된 키와 값도를 사용 -description
하므로 컬렉션 및 다른 곳에서 개체에 대한 유용한 정보를 원하는 경우 재정의 -description
가 필수입니다. 일반적으로 기본 NSObject
구현 의 형식과 일치하도록 다음 줄을 따라 구현합니다.
-(NSString *) 설명 { return [NSString stringWithFormat : @ "<% @ % p> {foo : % @}", [self class], self, [self foo]]; }
XCode 4.6은 도움이 될 수있는 다음 기능을 추가했습니다.
The elements of NSArray and NSDictionary objects can now be inspected in the Xcode debugger
이제 콘솔에서 전체 개체를 인쇄하지 않고도 이러한 개체 유형을 검사 할 수 있습니다. 즐겨!
NSLog를 사용할 수도 있습니다 .
또한 디버그 영역 또는 xcode로 이동 All Variables, Registers, Globals and Statics
한 다음 변수 를 찾은 다음 선택할 수 있습니다. 그것을 마우스 오른쪽 버튼으로 클릭하십시오. 그런 다음Print description of "...."
도움이 되었기를 바랍니다.