Если вы ориентируетесь на iOS 10 и более поздние версии, вам не нужно поддерживать устаревший API. Просто используйте новый.
Нет необходимости в if/else
. Просто сделай:
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];
Вот и все. Этот обновленный API был добавлен в iOS 10.0. Поскольку вы поддерживаете только iOS 10 и более поздние версии, нет необходимости пытаться использовать устаревший API.
Если этот код используется некоторыми проектами, поддерживающими iOS 10 и более поздние версии, а также некоторыми проектами, которые должны поддерживать что-то более старое, чем iOS 10, то вам нужно что-то вроде следующего:
#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_10_0
if (@available(iOS 10.0, *)) {
#endif
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];
#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_10_0
} else {
[[UIApplication sharedApplication] openURL:url];
}
#endif
Эффект этой директивы компилятора заключается в том, что при сборке проекта с целью развертывания iOS 10.0 или более поздней скомпилированный код просто становится:
[[UIApplication sharedApplication] openURL:url options:@{}
Когда код встроен в проект с целью развертывания более ранней, чем iOS 10.0, скомпилированный код будет иметь вид:
if (@available(iOS 10.0, *)) {
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];
} else {
[[UIApplication sharedApplication] openURL:url];
}