2009-10-30 5 views
1

컴파일러 경고를 억제하는 방법이 있습니까 ??목표 -C 경고 억제

감사

+0

어떤 Objective-C 컴파일러를 사용하고 있습니까? – Artelius

+9

컴파일러에서 더 이상 불평하지 않도록 소스 코드를 편집 할 수 있습니다. – mouviciel

+2

코드를 수정하여 경고를 표시하지 않습니다. 작업 코드가 경고를 생성해야하는 이유는 기본적으로 없습니다. – bbum

답변

4

당신이 엑스 코드에서 볼하지 않으려면 소스 창을 마우스 오른쪽 버튼으로 클릭을 억제하고 메시지를 선택하면 거품 수 | 오류 만. 줄 옆에 작은 경고 기호가 계속 표시되지만 경고 텍스트는 나타나지 않습니다.

프로젝트 정보 창을 열고 빌드 탭으로 이동하여 컴파일러가 경고를 생성하지 못하게 할 수 있습니다. GCC#. # - 경고 섹션 아래의 모든 경고를 금지하는 확인란이 있습니다. 그건 네가 원하는대로 할거야.

명령 줄에서 작성하는 경우이 스위치를 시도 할 수 있습니다 :

-GCC_WARN_INHIBIT_ALL_WARNINGS -w 

나는 그 스위치를 한 번도 안 써봤. 프로젝트 정보 창에 도움말 영역에 나열되었습니다.

하지만 가장 좋은 해결책은 물론 코드에 경고가있는 이유를 파악하고 수정하는 것입니다.

2

그래, 나는 경고를 고쳐야 만하지만, 10.4 이상에서 작업 할 응용 프로그램이 있고 어떤 곳에서는 10.6의 메서드/메시지를 활용하지만 여전히 작동하지만 10.4에?

예를 들어, NSDate.addTimeInterval은 더 이상 사용되지 않으므로 10.6의 경우 NSDate.dateByAddingTimeInterval을 사용하는 것이 좋습니다.

내가 할 수있는 것부터, 내가 무엇을해도, 나는 어느 쪽인지에 대한 경고로 끝날 것입니다. 내가 코드를 추가하는 경우 :

if ([NSDate instancesRespondToSelector:@selector(dateByAddingTimeInterval)]) { 
    timer = [[NSTimer alloc] initWithFireDate:[nowDate dateByAddingTimeInterval:10.0] interval:0.05 target:self selector:@selector(fade:) userInfo:nil repeats:YES]; 
} else { 
    timer = [[NSTimer alloc] initWithFireDate:[nowDate addTimeInterval:10.0] interval:0.05 target:self selector:@selector(fade:) userInfo:nil repeats:YES]; 
} 

을 SDK 버전 10.5의 경우 나는 if 문 상반기에 경고를하고, 하반기에 경고가 SDK 버전 10.6의 경우.

내가 코드가 OK입니다을 알고 있다면, 나 컴파일러를 말할 수 있도록하는 프라그 또는 유사한 구조는 문제의 라인은 OK이다,있다?