Как проверить, существует ли UIActivityTypeAirDrop

я использую UIActivityViewController чтобы показать общий лист в некоторых приложениях iOS. iOS 7 представляет новый тип UIActivity: UIActivityTypeAirDrop.

это объявлено как строка extern в ... По сути, я пытаюсь исключить тип airdrop из моего общего листа, который работает нормально, но этот набор кодов должен быть обратно совместим с предыдущими версиями iOS.

Я знаю, чтобы проверить метод, который я могу использовать respondsToSelector: но есть ли способ я могу использовать, чтобы проверьте, объявлена ли строка, или я должен прибегнуть к включению версии системы? (Что никогда не является хорошим способом идти нормально)

1 ответов


UIActivityTypeAirDrop является константой NSString, которая по существу будет указателем, поэтому вы можете проверить, является ли этот указатель нулевым. Если это не так, этот тип действия существует, и вы можете его исключить. Больше ничего не предпринимайте.

if (&UIActivityTypeAirDrop != NULL) {
    activityViewController.excludedActivityTypes = @[UIActivityTypeAirDrop];
}