Xcode에서 사용되지 않는 경고 억제
모든 SDK가 떠돌고 있기 때문에 여러 SDK 및 플랫폼을 위한 구축이 용이합니다.그러나 3.2에서 3.0으로 바운스할 때, 심지어 2.x로 바운스할 때 변경되거나 대체된 메서드와 관련된 권장되지 않는 경고가 자주 표시됩니다.
warning: 'UIKeyboardBoundsUserInfoKey' is deprecated.
이전 OS와의 호환성을 유지하고 싶기 때문에 빌드 시 '노이즈'를 제거하기 위해 노력하고 있습니다.이러한 경고를 끄거나 비활성화할 수 있는 방법이 있습니까?
아직 @samiq 포스트에 코멘트를 추가할 수 없기 때문에 확대하려고 합니다.사용되지 않는 것을 사용하는 함수/메서드 앞에 언급된 지시문을 입력합니다.그런 다음 함수 종료 정의 후 이전 설정을 복원할 수 있습니다.
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
- (void) methodUsingDeprecatedStuff {
//use deprecated stuff
}
#pragma GCC diagnostic pop
Clang은 @manicaesar 포스트의 "restore" 단계를 초기 경고 상태와 무관하게 만드는 훌륭한 기능을 제공합니다.
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
- (void) methodUsingDeprecatedStuff {
//use deprecated stuff
}
#pragma clang diagnostic pop
Clang 매뉴얼을 인용하려면:
Clang에서는 GCC의 플러그마에 의해 제공되는 모든 기능과 더불어 현재 경고 상태를 푸시 및 팝할 수도 있습니다.다른 사용자가 어떤 경고 플래그를 작성하는지 모르기 때문에 다른 사용자가 컴파일할 헤더 파일을 작성할 때 특히 유용합니다.
해라-Wno-deprecated-declarations또는 Xcode의 대응하는 설정,GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS(프로팁: 빌드 설정에 "사용되지 않음"을 입력하면 이 경고에 대한 특정 설정을 찾을 수 있습니다).
Xcode의 현재 버전(예: Xcode 9.2):
Xcode의 이전 버전(예: Xcode 2.x, 3.x):
오래된 OS를 지원해야 하지만 경고에 주의를 기울여야 하기 때문에 좀 더 깔끔한 방법을 원했습니다.Mozilla 코드에서 영감을 얻어 정리했습니다.
#define SILENCE_DEPRECATION(expr) \
do { \
_Pragma("clang diagnostic push") \
_Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") \
expr; \
_Pragma("clang diagnostic pop") \
} while(0)
#define SILENCE_IOS7_DEPRECATION(expr) SILENCE_DEPRECATION(expr)
#define SILENCE_IOS8_DEPRECATION(expr) SILENCE_DEPRECATION(expr)
이를 통해 다음 작업을 수행할 수 있습니다.
SILENCE_IOS7_DEPRECATION(return [self sizeWithFont:font constrainedToSize:size]);
또, 다음의 코드 블록에서도 동작합니다.
SILENCE_IOS7_DEPRECATION(
view = [[MKPolylineView alloc] initWithPolyline:self];
view.lineWidth = self.lineWidth;
view.strokeColor = self.color;
);
또한 iOS 7 이전 디바이스의 지원을 중단할 경우 코드를 쉽게 검색하여 권장되지 않는 수정 용도를 찾을 수 있습니다.
또한 다음을 사용하여 파일당 경고를 억제할 수 있습니다.
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
결국엔 모든 경고를 한 번, 그리고 함께 억누르는 것보다 조금 더 좋은 방법이 될 거야... 결국엔 네가 뭘 위해 그런 짓을 하는지 알게 될 거야.
경고 Implementing decommended 메서드 또는 Implementing decommended 클래스를 정지하려면 다음 명령을 사용합니다.
#clang 진단 푸시#pragma clang 진단이 무시되었습니다.-Wrecommended-Implements"// 코드#diagma clang 진단 팝
설정에서 " " " 를 .Deprecated Functions.
만약 당신이 코드 조각에 있는 모든 종류의 추천을 포괄적으로 체크하고 싶다면.다음과 같이 -Wrecommended 플래그를 사용하십시오.
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated"
- (void) methodUsingDeprecatedStuff {
//use deprecated stuff
}
#pragma clang diagnostic pop
이슈 탐색기에 필터를 추가합니다.
타사 헤더 파일의 경고를 비활성화하려면 파일 맨 위에 다음 줄을 추가하십시오.
#pragma clang system_header
언급URL : https://stackoverflow.com/questions/2622017/suppressing-deprecated-warnings-in-xcode
'programing' 카테고리의 다른 글
| iOS 7+에서의 Base64 디코딩 (0) | 2023.04.13 |
|---|---|
| Excel - 조건부 형식 지정 - 행 삽입 (0) | 2023.04.13 |
| .gitignore 파일에 관계없이 강제 추가 (0) | 2023.04.13 |
| 앞뒤로 검색하려면 어떻게 해야 하나요? (0) | 2023.04.13 |
| SQL Server로 CSV 파일 Import (0) | 2023.04.08 |



