recursiveDescription
은 뷰 계층 구조를 디버깅 할 때 매우 유용합니다. 컨트롤러 계층도 매우 중요합니다. 이에 해당하는 항목이 있습니까?뷰 컨트롤러 계층 구조에 대한 recursiveDescription 메서드가 있습니까?
답변
업데이트 - 비슷한 기능을 Apple에서 제공하는 형식으로 _printHierarchy
메서드로 사용할 수 있으므로이 카테고리가 더 이상 필요하지 않습니다.
지금이 :
Github: Recursive description category for view controllers.
recursiveDescription
메서드를 UIViewController
에 추가하면보기 컨트롤러 계층 구조가 인쇄됩니다. 하위보기 컨트롤러를 제대로 추가하고 제거하는지 확인하는 기능이 우수합니다.
이 코드는 여기뿐만 아니라 GitHub의 링크 위에서 매우 간단 포함되어
@implementation UIViewController (RecursiveDescription)
-(NSString*)recursiveDescription
{
NSMutableString *description = [NSMutableString stringWithFormat:@"\n"];
[self addDescriptionToString:description indentLevel:0];
return description;
}
-(void)addDescriptionToString:(NSMutableString*)string indentLevel:(NSInteger)indentLevel
{
NSString *padding = [@"" stringByPaddingToLength:indentLevel withString:@" " startingAtIndex:0];
[string appendString:padding];
[string appendFormat:@"%@, %@",[self debugDescription],NSStringFromCGRect(self.view.frame)];
for (UIViewController *childController in self.childViewControllers)
{
[string appendFormat:@"\n%@>",padding];
[childController addDescriptionToString:string indentLevel:indentLevel + 1];
}
}
@end
이 간결하게 대답을 넣어, 내가보기 컨트롤러 계층 구조를 인쇄 엑스 코드의 디버거 콘솔에서 아래의 명령을 사용
po [[[UIWindow keyWindow] rootViewController] _printHierarchy]
추신 이것은 ios8 이상에서만 작동하며 디버깅 목적으로 만 사용됩니다. 나에게 이것과 다른 많은 훌륭한 디버깅 기술을 발견 도움이 기사에
링크는 this
편집 1 : 당신에 의해 계층 구조를 인쇄 할 수 있습니다 스위프트 2에서 :
UIApplication.sharedApplication().keyWindow?.rootViewController?.valueForKey("_printHierarchy")
편집 2 : 스위프트 3에서는 다음과 같이 계층을 인쇄 할 수 있습니다.
UIApplication.shared.keyWindow?.rootViewController?.value(forKey: "_printHierarchy")
Swift :'UIApplication.sharedApplication(). keyWindow? .rootViewController? .valueForKey ("_ printHierarchy")' –
고마워요. 나는 그것을 답에 추가 할 것이다. – jarora
빠른 방법 (lldb/엑스 코드 디버거)
po [UIViewController _printHierarchy]
_printHierarchy은 VC의 관점 서브 뷰 컴포넌트에 대한 재귀 정보를 제공하지 않는다.
접근법 1 : lldb 명령을 사용하여 전체보기 계층을 얻습니다.
po [[[UIApplication sharedApplication] keyWindow] recursiveDescription]
접근법 2 : 가장 좋은 방법은 엑스 코드 디버거에서 "디버그보기 계층 구조"버튼을 사용하여 모든 정보를 얻을 수있다.
Erm, 멋지 네요. 특히 질문에 recursiveDescription이 언급되어 있고 View Controller 계층 구조에 해당하는 것이 필요합니다. – jrturton
- 1. 뷰 컨트롤러가 뷰 계층 구조에 있지 않습니까?
- 2. 윈도우 계층 구조에 대한 경고
- 3. 뷰 컨트롤러를 뷰 계층 구조에 추가하는 적절한 방법은 무엇입니까?
- 4. 계층 구조에 대한 디자인 패턴
- 5. 하위 뷰를 뷰 계층 구조에 추가하기
- 6. 현재 탐색 컨트롤러 계층 구조에 Popover 추가
- 7. iOS에서보기 계층 구조에 가입
- 8. 계층 구조에 대한 평면 목록
- 9. 표준 예외 계층 구조의 구조에 대한 이유
- 10. T SQL - 계층 구조에 대한 특별 주문
- 11. 뷰 계층 구조에 UIActionSheet가 있는지 확인하는 방법은 무엇입니까?
- 12. 클래스 계층 구조에 대한 Qt의 예외 처리
- 13. ZBarReaderViewController, 뷰 컨트롤러 계층 구조 및 기타
- 14. 뷰 계층 구조 - iPhone
- 15. Stylecop - 클래스 x가 상속 계층 구조에 있습니까?
- 16. 하위 뷰 추가시 오류 : 창 계층 구조에 없음
- 17. ID가 사용자 계층 구조에 있어야합니까?
- 18. 계층 구조에 선택적 요소가있는 XPath
- 19. 뷰 파트에 대한 컨트롤러 소개
- 20. 오류 :보기가 창 계층 구조에 없습니다. Spritekit
- 21. iPhone - 뷰 계층 구조가 모델 계층 구조에 병렬 구조로있을 때 MVC 적용
- 22. 유형/클래스의 파이썬 계층 구조에 대한 개요를 얻으려면 어떻게해야합니까?
- 23. hiccup 구조에 대한 파서가 있습니까?
- 24. Akka : 현재 액터 계층 구조에 대한 정보 얻기
- 25. 서비스 계층 논리에 대한 컨트롤러 테스트
- 26. 계층 구조에 사용되는 숫자 필드 정렬
- 27. 회전 뷰 컨트롤러> 내 애플은 뷰 컨트롤러 계층 구조는 다음과 같이 설정 한
- 28. 기하학 유형 계층 구조에 대한 깔끔한 디자인 패턴
- 29. 모달 뷰 컨트롤러 오버 뷰 컨트롤러 표시
- 30. 구성원 출퇴근 중 다중 계층 구조에 대한 값 집계
+1.5 잘 연주했습니다. – Caleb