使用@available抑制Objective-C中的弃用警告
考虑到Objective-C中的@available命令,我希望弃用警告会像在Swift中一样消失。 例如:使用@available抑制Objective-C中的弃用警告,objective-c,cocoa,cocoa-touch,deprecation-warning,Objective C,Cocoa,Cocoa Touch,Deprecation Warning,考虑到Objective-C中的@available命令,我希望弃用警告会像在Swift中一样消失。 例如: ABPerson *abPerson = [participant ABPersonInAddressBook:[ABAddressBook addressBook]]; “MeetingAttendewithMeetingPlanner:andABPerson:”已弃用:在macOS 10.11中首次弃用-使用联系人框架 有了@available close,我可以调节api框架的使
ABPerson *abPerson = [participant ABPersonInAddressBook:[ABAddressBook addressBook]];
“MeetingAttendewithMeetingPlanner:andABPerson:”已弃用:在macOS 10.11中首次弃用-使用联系人框架
有了@available close,我可以调节api框架的使用,我猜这会使警告静音,但事实并非如此。这是使用@available命令的正确方法吗?如果是,有没有办法使警告静音
if (@available(iOS 9, macOS 10.11, *)) {
}
else{
ABPerson *abPerson = [participant ABPersonInAddressBook:[ABAddressBook addressBook]];
}
@如果要检查当前的iOS(/MacOS)版本是否支持此API,则可使用Objective-C中的。当您实现某些iOS版本支持的API时,会调用它,但较旧的iOS版本不支持该API
据我所知,你不能对不推荐的API发出无声警告-你只能用新的替换它。“据我所知,你不能对不推荐的API发出无声警告-你只能用新的替换它”<这是错误的,在这种情况下,使用pragma
-Wdeprecated声明使警告静音是很简单的。您可以使用pragma使弃用警告静音:您的@available方法在Swift中有效吗?大概是使用#可用?目标C中的AFAIK@available关键字不看NS\u已弃用
,只看NS\u available
,因此这不会像您现有的那样起作用。也许斯威夫特是不一样的。@Nextman,是的,我正在使用可用的作品,就像一个符咒!
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
... the code using the deprecated API ...
#pragma clang diagnostic pop