我要从 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/