iOS,如何禁用有关已弃用方法的某些警告

标签 ios macros warnings deprecated

我要从 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];
}

但是 Xcode 一直警告我 [text sizeWithFont...]已弃用。现在,因为我确定我的标志 isiOS7orAbove 可以处理 iOS 版本,所以我不需要警告,因为我已经处理了它。

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

那么是否可以只删除 [text sizeWithFont...] 的警告?

我想一个叫做宏的东西应该可以做到这一点,比如 #IF IOS6但我不知 Prop 体怎么做。

最佳答案

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

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
size = [text sizeWithFont:...
#pragma clang diagnostic pop

关于iOS,如何禁用有关已弃用方法的某些警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19321258/

相关文章:

haskell - 为什么我会从 GHCi 收到此警告?

ios - 在 iOS 中找不到位置并自动关闭警报

ios - 非法指令:4(适用于iOS)

c - 如果使用函数,编译器会发出警告

vba - 从下拉列表中创建文件夹层次结构中的多个文件副本

c - 用于确定多个结构的最大大小的 GCC 预处理器宏

ios - Swift 编译器警告 : Result of call to 'save(defaults:)' is unused

ios - 具有复杂布局、可变行高和自动布局的 UITableViewCell

javascript - Ionic 2 iOS 10.3 - canvas.toDataURL() 错误 : the operation is insecure

c - 修复签名和未签名警告之间比较的解决方案