2012-12-23 5 views
20

lldb를 사용하여 iOS 응용 프로그램을 디버깅하려고하는데 디버그에서 정말 이상한 오류가 발생합니다.lldb 오류 : 형식의 객체에 속성이 없습니다.

내 중단하기 전에 몇 줄은, 내가있어 :

내가 lldb에서 print frame 명령을 아무런 문제없이 액세스 할 수 있습니다

CGRect frame = view.frame;

. 내가 lldb 다시 프레임에 액세스하려고 할 때, 나는 print view.frame을 입력하고 다음과 같은 오류가 발생합니다 :

error: property 'frame' not found on object of type 'UIView *'

나는 view을 확인할 수있는이 이해가되지 않습니다이 UIView* 인스턴스하고있다

(UIView *) $4 = 0x1e199bf0 <MyAppCustomView: 0x1e199bf0; frame = (3398 3396; 204 208); layer = <CALayer: 0x1e199ce0>>

이 특정 lldb 오류가 나 에 많은을 발생하고, 내가 할 수있는 : 올바른 결과를 po view를 입력하고 얻어서 프레임이라고 유효한 특성 이 오류의 원인을 찾을 수 없습니다. 어떤 사람은 Property 'count' not found on object of type 'NSMutableArray *' PO command in lldb에서 gdb를 (gdb) p view.frame으로 사용할 수 있다고 제안했지만, 나는 error: '(gdb)' is not a valid command.을 얻었으며 gdb 명령이 "작동하겠습니까?" 어쨌든 다른 디버거 내부.

무작위로 발생하는이 버그에 대한 제안 사항이나 해결 방법은 있습니까?

+0

인쇄 [뷰 프레임] –

+0

이미 시도 : 오류 : 알려진 방법 '- 프레임'; 메시지를 메서드의 반환 유형으로 보냅니다. –

+0

print [(UIView *) 뷰 프레임]도 작동하지 않습니다. –

답변

50

메시지 전송을위한 점 표기는 lldb에서 지원되지 않습니다. 대괄호 표기법을 사용 CGRect에 결과 캐스트 : (클래스가있는 UITableViewCell에서 파생 된 변수 셀의 프레임을 찾고, 나를 위해 그것을하지 않았다)

p (CGRect)[view frame] 
+0

(lldb) p [보기 프레임] 오류 : 알려진 메서드 없음 '-frame'; 편집 한 후에 메쏘드의 리턴 타입 –

+0

에 메시지를 던지십시오. 내가 천 성적으로 던져야하는 이유는 무엇입니까? 때로는 그것이 일어날 수있는 아이디어와 그렇지 않으면, lldb는 캐스트없이 포/프린트로 완벽하게 작동하고 있습니까? –

+3

@ canpoyrazoğlu LLDB가 런타임을 쿼리 할 때 인쇄 할 비 오브젝트 유형을 인식하지 못하기 때문에 캐스팅은 약속 된 유형을 제공합니다. – CodaFi

3

그냥 경우 위의이 작동하지 않습니다 : 여분의 괄호를 강제로 lldb의 작은 가곡 뇌 도움 듯 :

p ((CGRect)[cell frame]) 

프레스토 MAGICO :

(CGRect) $5 = origin=(x=0, y=0) size=(width=320, height=44) 
+0

이 응답은 외부 괄호없이 여전히 불평하고 있기 때문에 허용 된 대답이어야합니다. – inix

관련 문제