2014-11-12 1 views
3

LLDB를 사용하여 신속한 프로젝트에서 객체를 검사하는 방법이 약간 맘에 들지 않습니다. 이 특별한 경우 NSJSONSerializer를 사용하여 JSON의 작은 덩어리를 직렬화하고 값을 검사하고 싶습니다. Xcode 5.1에서는 매우 간단했습니다. lldb 프롬프트에서 "po json"을 입력하면 원하는 것을 얻을 수 있습니다. 이제 po 명령과 print 명령은 대부분 쓰레기를 출력하여 실패합니다. 일부 빠른 유형과 함께 작동하지만 여전히 작동하지 않기 때문에 설명 속성을 호출 해 보았습니다. 최후의 수단으로 println 문과 함께 표현식을 사용했고 마침내 그 방법이 사용되었습니다. 확실하게 더 간단한 방법이 있어야만합니까?LLDB 신속한 인쇄 객체

(lldb) print json 
(AnyObject?) $R4 = (instance_type = Builtin.RawPointer = 0x00007ff05c0c49d0 ->  0x0000000107ef32c8 (void *)0x0000000107ef32f0: __NSCFDictionary) 
(lldb) po json 
(instance_type = Builtin.RawPointer = 0x00007ff05c0c49d0 -> 0x0000000107ef32c8 (void *)0x0000000107ef32f0: __NSCFDictionary) 
{ 
    instance_type = 0x00007ff05c0c49d0 -> 0x0000000107ef32c8 (void *)0x0000000107ef32f0: __NSCFDictionary 
} 
(lldb) print json.description? 
error: <EXPR>:1:1: error: 'Optional<AnyObject>' does not have a member named 'description' 
json.description? 
^ ~~~~~~~~~~~ 

(lldb) po json.description? 
error: <EXPR>:1:1: error: 'Optional<AnyObject>' does not have a member named 'description' 
json.description? 
^ ~~~~~~~~~~~ 
(lldb) expression 
Enter expressions, then terminate with an empty line to evaluate: 
1 println(json) 
2 
Optional({ 
    errors =  { 
     "authorizations.provider_user_id" =   (
      "has already been taken" 
     ); 
    }; 
}) 
(lldb) 

답변

0

당신이

(lldb)을 시도 할 수 EXPR -O -d 실행 - JSON을 : 여기 LLDB의 출력입니다!

"po"가 ObjC에서와 같은 방식으로 정확하게 작동하지 않는다는 사실은 알려진 제한 사항입니다. 선택적으로 명시 적으로 래핑을 해제하고 래핑되지 않은 값에서 동적 유형 확인이 가능해야합니다.