Deprecate 된 함수에 대한 처리를 했음에도 불구하고 Warnning이 뜨는 경우가 많다. 아래와 같은 스타일로 코딩을 한 경우..
if ([test respondsToSelector:@selector(~~~~~~)]) {
} else {
}//end if
그렇다고 Xcode 자체에서 Warnning을 Off 하는 건 불안하고.. 가만히 두고 있으려고 하니 마음이 편하지 못하다..
그럴 때는 아래와 같은 방법을 사용해 보자!
아래와 같이 정의를 하고...
#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;
);