Удалить предупреждение при использовании более новой версии 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];

Это удалит предупреждение

Другие вопросы по тегам