如何在Xcode中覆盖已弃用的警告?

5

是否有一个#pragma可以覆盖编译时的警告,例如:

warning: 'ADBannerContentSizeIdentifier480x32' is deprecated (declared at /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/System/Library/Frameworks/iAd.framework/Headers/ADBannerView.h:111)

我必须通过以下方式保持对4.2版本之前的iOS设备的兼容性:

NSString *iAdSize = (osVersion >= 4.2) ? ADBannerContentSizeIdentifierPortrait : ADBannerContentSizeIdentifier480x32;

谢谢

3个回答

8
有的。
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wno-deprecated-declarations"
//deprecated function
#pragma clang diagnostic pop

如果你想知道某个错误的正确语法,只需在Xcode中找到它,然后查看快速帮助。

4
为使其正常工作,我不得不使用#pragma clang diagnostic ignored "-Wdeprecated-declarations"。 - CodeReaper

2

有一个构建设置可以切换弃用函数的警告。

尽管正确的做法是在运行时检查操作系统版本,并在必要时执行弃用方法,否则执行新方法。


我正在寻找一个开关来关闭一个特定的弃用警告,我知道自己在做什么,但不想关闭所有警告。谢谢。 - ohho
在这种情况下,请查看我对这个问题的另一个答案。 - Kenneth Ballenegger

0

您可以通过创建一个“Deprecated.h”文件来抑制特定的弃用警告,在其中将弃用的方法声明为类别中的好方法。


2
这是一个不好的想法,你应该使用#pragma语法来抑制特定的警告。 - odyth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接