iOS,如何禁用有关弃用方法的CERTAIN警告

Jim*_*imZ 2 macros warnings deprecated ios

我正在从iOS6迁移到iOS7,但我想保留适用于iOS6的代码,所以我的代码如下所示:

if (isiOS7orAbove) {
    sizeios7 = [text boundingRectWithSize:CGSizeMake(TEXTVIEW_WIDTH, 9999)
                options:NSStringDrawingUsesLineFragmentOrigin 
                attributes:nil context:nil];
}else{
    size = [text sizeWithFont:[self cellFont]
            constrainedToSize:CGSizeMake(TEXTVIEW_WIDTH, 9999)
            lineBreakMode:NSLineBreakByWordWrapping];
}
Run Code Online (Sandbox Code Playgroud)

但是Xcode一直警告我[text sizeWithFont...]不赞成.现在,因为我确信我的旗帜isiOS7orAbove可以处理iOS版本所以我不需要警告,因为我已经处理过它.

我不想真的禁用有关弃用方法的警告,我想要的是告诉Xcode我已经处理它,应该适用于较低版本的iOS.

那么有可能只删除[text sizeWithFont ...]的警告吗?

我想一个叫宏的东西应该这样做,#IF IOS6但我不确切知道如何.

Kre*_*iri 5

从理论上讲,您可以使用#pragma clang diagnostic指令抑制一段代码的诊断.不过,我自己从未尝试过.

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
size = [text sizeWithFont:...
#pragma clang diagnostic pop
Run Code Online (Sandbox Code Playgroud)