Удалить предупреждение при использовании более новой версии SDK
Я использую метод, который доступен начиная с версии 5.0 iOS SDK. Конечно, прежде чем вызывать его, я проверяю, есть ли у класса метод (другими словами, он проверяет версию iOS, которая работает):
if ([UITabBar instancesRespondToSelector:@selector(setSelectedImageTintColor:)]) {
[myTabBarController.tabBar setSelectedImageTintColor :TINT_COLOR_IMAGES];
}
Это отлично работает. Однако я получаю предупреждение, которое хочу удалить, но я не нашел ничего, что могло бы с этим справиться. Предупреждение:
warning: ‘UITabBar’ may not respond to ‘-setSelectedImageTintColor:’
warning: (Messages without a matching method signature
warning: will be assumed to return ‘id’ and accept
warning: ‘...’ as arguments.)
Поскольку я не хочу удалять все предупреждения в моем проекте (удаляя опцию -Wall), я попробовал это #pragma:
#pragma GCC diagnostic ignored "-Wundeclared-selector"
[...] my method containing call to setSelectedImageTintColor
#pragma GCC diagnostic warning "-Wundeclared-selector"
Но это не сработало, даже когда я заменил "Wundeclared-selector" на "Wall", что означает, что #pragma не действует, и, возможно, мне нужно активировать что-то в моем make-файле.
Любая идея?
Спасибо
1 ответ
Решение
Удалить предупреждение изменить это
[myTabBarController.tabBar setSelectedImageTintColor :TINT_COLOR_IMAGES];
в
[myTabBarController.tabBar performSelector:@selector(setSelectedImageTintColor:) withObject:TINT_COLOR_IMAGES];
Это удалит предупреждение