우리는 구형 OS를 지원해야하지만 경고에주의를 기울여야하기 때문에 좀 더 깔끔한 방법을 원했습니다. 나는 이것을 모질라 코드에서 영감을 얻었습니다.
#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 이전 장치에 대한 지원을 중단하면 코드를 쉽게 검색하여 더 이상 사용되지 않는 사용법을 찾을 수 있습니다.