2011-09-13 2 views
3

이 작업을 잠시 조사하고 무엇을해야할지 잘 모름.iOS의 디버그 모드

사용자가 디버그 모드를 켜거나 끌 수있게하고 싶습니다. NSLogs의 디버그 모드가 콘솔에 인쇄됩니다.

현재 전 처리기 (DEBUG)를 사용하여 빌드 설정에서 디버그 모드를 설정하거나 해제 할 수 있으며 다음 코드를 사용하여 NSLog를 "차단"합니다.

#ifdef DEBUG 
    NSLog(@"If you can see this then debug is on"); 
#endif 

내가 사용자의 입력을 행하기위한 설정 페이지에있는 토글 스위치를 만든하지만 다음 정의되지 않은이 입력을 사용하는 방법을 모르는/DEBUG를 재정의. 어떤 아이디어?

이것이 가능한 경우 확실하지 않으므로 다른 해결책도 얻을 수 있습니다.

많은 감사 :)

답변

5

당신은 처리기 지시문을 사용하지 않아야합니다 : #ifdef DEBUG를 사용하여이 DEBUG가 정의되어 있지 않은 경우, 코드의 조각을 전혀 컴파일되지 않는 것을 의미한다.

글로벌 변수를 검사하는 간단한 if 문으로 전 처리기 지시문을 대체해야합니다 (또는 적어도 솔루션 일 수 있음).

+0

안녕하세요. 이것은 완전히 다른 질문 일지 모르지만 전역 변수 또는 싱글 톤을 사용해야합니까? 다시 한 번 감사드립니다 :) – IainNotAndrew

+0

"올바른"선택이 있는지 확실하지 않지만 가장 단순한 해결책으로 보이기 때문에 간단한 변수를 사용합니다. 전역 변수의 수가 많아 지거나 간단한 if (DEBUG)가 아닌 추가 검사가 필요한 경우 싱글 톤으로 생각할 수 있습니다. 다시 말하지만, 그건 제 의견입니다. 그게 최선의 방법인지 모르겠습니다. :) – Saphrosit

+0

도움 주셔서 감사합니다 :) – IainNotAndrew

0

나는 코드 블록이 디버그 또는 릴리스 용으로 빌드하고 있는지 확인하고 그에 따라 빌드 할 것이라고 생각합니다.

릴리스 모드에있을 장치에서 빌드 할 수 있습니다. 그렇지 않으면 릴리스 모드에서 시뮬레이터를 실행할 수 없다고 생각합니다.

시뮬레이터 용 응용 프로그램을 수동으로 빌드하고 xcode를 실행하지 않고 시뮬레이터에서만 실행되도록 압축 파일을 이동하는 것이 좋겠지 만 필자는 맞지 않을 것입니다.