Xcode 개발 디버그 기술 5개
Enable NSZombie Objects는 Xcode 개발 환경 전체에서 가장 유용한 디버그 기술일 수 있습니다.이 기교는 중복 방출 문제를 추적하기 매우 쉽다.이 기교는 반복적으로 방출되는 클래스와 이 클래스의 메모리 주소를 간단명료하게 출력합니다.
좀비 대상은 어떻게 열어요?먼저 Edit Scheme을 엽니다(또는 바로 가기 키를 통해서?
이제 우리는 ARC를 끄고 중복 방출의 문제, 이상, 더 쉽게 발생하는 Crashs를 테스트할 수 있지만, ARC를 켜도 중복 방출과 메모리와 관련된 Crashs가 자주 발생한다.지금 우리가 약간의 잘못을 저질러 중복 방출이 발생했다고 가정해서 무슨 일이 일어날지 관찰해 보자.
UIView* view = [[[UIView alloc] init] autorelease]; //... //do something with view...clearly forgetting that it has been autoreleased. // [view release];
현재 이 코드를 실행하면 반복적으로 방출되는 문제가 발생하고 프로그램은 주 함수에 붕괴됩니다. 다음과 같습니다.
Enable NSZombie Objects는 디버거를 다음과 같이 표시합니다.
이 예는 매우 작게 보이지만 Enable NSZombie Objects를 통해 인쇄된 큰 프로젝트에 유용합니다.
2. 모든 예외에 글로벌 브레이크 포인트(글로벌 브레이크) 추가
응용 프로그램이 이상하거나 붕괴될 때 X코드가 좋아하는 일은 주 함수로 바로 넘어가는 것이다. 첫 번째 디버깅 기교에서 사용한 예와 같다.이상하거나 붕괴가 이상하거나 붕괴가 일어난 곳에 머물 수 있다면 얼마나 좋을까.다행히도 할 수 있는 방법이 하나 있다.Xcode에는 이상 단점이라는 아름다운 기능이 있는데, 이상이 발생할 때 이상이 발생하는 곳에 단점을 두는 것을 허용한다.너는 구체적인 이상을 지정할 수도 있고 모든 이상을 지정할 수도 있다.
어떻게 이상 단점을 엽니까?프로젝트가 이상 탐색 창으로 전환되고 아래 왼쪽에 있는 "Add Breakpoint"단추를 누르고 "Add Exception Breakpoint"를 선택하면 모든 이상을 포착할 수 있습니다.
현재 이상이 발생했을 때 디버거는 주 함수로 바로 넘어가지 않고 이상이 발생한 곳에 머물렀다.
이 단점은 우리에게 디버깅이 매우 좋은 시작점을 주었다. 우리는 역대에 가서 이상이 발생한 곳을 찾아볼 필요가 없다.
3. Static Analyzer(정적 분석)
Static Analyzer는 컴파일러가 알림을 주지 않는 문제와 개인의 내부 오류 유출과 저장 (사용하지 않는 값을 부여한 변수) 오류를 발견하는 데 아주 좋은 도구입니다.이 방법은 메모리 사용과 성능을 크게 향상시키고 응용의 전체적인 안정성과 코드의 질을 향상시킬 수 있다.
Static Analyzer 를 어떻게 엽니까?Xcide의 Product 메뉴를 열고 Analyzer 옵션(또는 핫키?shift B)을 선택합니다.보시다시피 Static Analyzer는 모든 애플리케이션에서 가능한 문제를 포착하여 파란색 경고로 표시합니다.
또한 응용 프로그램을 컴파일할 때 Static Analyzer를 자동으로 켜고 프로젝트 프로젝트 파일을 열고 "Run Static Analyzer"를 YES로 설정합니다. 다음 그림과 같습니다.
4. Condational Breakpoints(조건 브레이크)
마지막 디버깅 기술 조건의 단점입니다. 이것은 일반적인 단점입니다. 변수가 일정한 조건을 충족시킬 때 프로그램이 정지됩니다.이 디버깅 기술은 순환 중인 변수의 특정한 값을 포착하거나 자주 발생하지 않는 상황을 포착하려고 할 때 매우 유용하며, 매번 반복해서 보기를 멈추지 않아도 된다.
조건 변수를 어떻게 엽니까?단지 일반적인 단점을 추가한 다음에 단점을 오른쪽 단추로 눌러서'Edit Breakpoint'를 선택하면 단점 편집기가 열립니다. 단점 조건(또는 다른 단점 설정)을 설정하고'Done'을 선택할 수 있습니다. 이 디버깅 기술은 매우 간단하죠.
5.unrecognized selector send to instancd 빠른 포지셔닝
Debug 메뉴에서 Breakpoints->Create Symbolic Breakpoint
Symbolic에 다음 방법으로 서명하기
-[NSObject(NSObject) doesNotRecognizeSelector:]
설정이 끝난 후에 유사한 오류가 발생하면 구체적인 코드로 지정됩니다.
원본 연결:http://crushbeercrushcode.org/2012/11/four-tips-for-debugging-in-xcode-like-a-bro/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Dialog에서 EditText가 키보드로 덮어쓰지 않도록 키보드가 입력 상자 아래에 계속 있습니다텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.