2014-04-18 5 views
0

디버그 빌드에 대한 일부 이벤트를 기록하려고합니다. 디버그에만 DLog()을 사용하여 로그에 .pch 파일 아래에 코드를 추가했습니다. 빌드 설정에서 IS_DEBUG 매크로를 추가했습니다. 작동하는지 전처리 매크로를 사용하여 앱 빌드가 디버그 또는 릴리스인지 결정

#ifdef IS_DEBUG 
    #define DLog(...) NSLog(__VA_ARGS__) 
#else 
    #define DLog(...) 
#endif 

는 테스트하려면 여부, 나는 빌드 설정에서 IS_DEBUG을 제거하고 응용 프로그램을 실행했습니다. 문제는 디버그/릴리스 앱과 관계없이 항상 로그한다는 점입니다.

DLog 메서드와 전처리 매크로의 이름을 변경하여 동일한 매크로 나 메서드가 다른 곳에서 정의 된 것을 확인했습니다. 그러나 여전히 동일한 문제를 제공합니다. 동일한 매크로 또는 방법이 다른 곳에서는 사용되지 않습니다.

답변

-1

브라이언의 대답은이 문제를 해결하는 데 도움이되었습니다. 오직 프로젝트 및 Xcode 캐시 청소 만 제대로 작동하지 않았습니다. 나는 시뮬레이터를 리셋하고 프로젝트를 정리했다. 그것은 그것이 효과가있어.

1

Xcode에서는 스키마를 정의 할 수 있습니다. 각 구성표는 특정 구성 (일반적으로 최소한 Debug 및 Release)으로 빌드 할 수 있습니다. Xcode의 체계 관리자에서 사용하고자하는 것을 지정할 수 있습니다.

다음으로 대상 구성에서 연결할 구성에 대해 정의 된 매크로를 변경할 수 있습니다. 귀하의 경우에는 'IS_DEBUG'이됩니다. 디버깅 구성을 위해이 작업을 수행하려는 경우가 대부분입니다. 그런 다음 해당 구성을 작성하는 체계를 만드십시오.

+0

그러나 매크로를 제거하면 값을 기록해서는 안됩니다. 디버그 나 릴리스와 관계 없습니다. – Geek

+0

먼저 NSLog에 대한 직접 호출이 없는지 확인합니다. 그렇지 않으면 IS_DEBUG를 다른 어딘가에 설정해야합니다. –

+0

@Brayn DLog()를 사용했습니다. 질문에서 언급했듯이 매크로 이름과 메소드 이름을 모두 변경하려고했습니다. 따라서 IS_DEBUG가 정의 된 경우 다른 곳에서는 매크로의 이름을 변경해야합니다. 그러나 그렇지 않습니다. – Geek