Search code examples
objective-cclangpragmasuppress-warnings

How do I selectively ignore clang's warnings about use of deprecated objective-c implementations?


I'm updating MGSplitViewController for iOS 5.1, and I want to be warned about usage of deprecated Objective-C methods. Unfortunately, MGSplitViewController supports iOS 3.2, so I want to support all deprecated callbacks, but ignore warnings about them.

I've enabled warnings about "Overriding Deprecated Objective-C Methods" (CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS) in my target build settings, but I can't ignore it with

#pragma clang diagnostic push
#pragma clang diagnostic ignored "CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS"

- (void) deprecated_objc_method_override {
}

#pragma clang diagnostic pop

Solution

  • CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS corresponds to -Wdeprecated-implementations, which Xcode doesn't show in its "Quick Help" area. So the following works:

    #pragma clang diagnostic push
    #pragma clang diagnostic ignored "-Wdeprecated-implementations"
    
    - (void) deprecated_objc_method_override {
    }
    
    #pragma clang diagnostic pop