Подавление предупреждения об устаревании в Objective- C с @available - PullRequest
0 голосов
/ 05 февраля 2020

Учитывая команду @available в Objective- C, я ожидал, что предупреждение об устаревании go исчезнет, ​​как в Swift. Пример:

ABPerson *abPerson = [participant ABPersonInAddressBook:[ABAddressBook addressBook]];

'meetingAttendeeWithMeetingPlanner: andABPerson:' устарел: первый устарел в macOS 10.11 - использовать каркас контактов

С @available close я могу обусловить использование API-интерфейса, я думаю, что это заставит замолчать предупреждение, но это не так. Это правильный способ использовать команду @available, и если это так, есть ли способ заставить замолчать предупреждение?

if (@available(iOS 9, macOS 10.11, *)) {

}
else{
    ABPerson *abPerson = [participant ABPersonInAddressBook:[ABAddressBook addressBook]];
}

Ответы [ 2 ]

0 голосов
/ 07 февраля 2020
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
... the code using the deprecated API ...
#pragma clang diagnostic pop
0 голосов
/ 06 февраля 2020

@ доступно в Objective- C используется, когда вы хотите проверить, поддерживает ли текущая версия iOS (/ MacOS) этот API. Он вызывается, когда вы реализуете API, который поддерживается начиная с некоторой версии iOS, но не поддерживается более старой iOS.

Насколько я знаю, вы не можете молчать об устаревшем API - вы можно заменить только новым.

...