使用较新的SDK版本方法时删除警告

时间:2012-06-07 15:34:57

标签: ios sdk warnings pragma

我正在使用自iOS SDK 5.0版以来可用的方法。 当然在调用它之前,我正在检查类是否有方法(换句话说它正在检查正在运行的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"

但这不起作用,即使我用“Wall”替换“Wundeclared-selector”,这意味着#pragma没有效果,也许我需要在makefile中激活一些东西。

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:1)

删除警告更改

 [myTabBarController.tabBar setSelectedImageTintColor :TINT_COLOR_IMAGES];

 [myTabBarController.tabBar performSelector:@selector(setSelectedImageTintColor:) withObject:TINT_COLOR_IMAGES];

这将删除警告