Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用@available抑制Objective-C中的弃用警告_Objective C_Cocoa_Cocoa Touch_Deprecation Warning - Fatal编程技术网

使用@available抑制Objective-C中的弃用警告

使用@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框架的使

考虑到Objective-C中的@available命令,我希望弃用警告会像在Swift中一样消失。 例如:

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