我创建了一个调用某人的按钮,我曾经这样编写代码:
[[UIApplication sharedApplication] openURL:@"123"];
但现在我注意到这个函数有一个警告,在 iOS10 中苹果提供了一个新函数来代替它,这里是:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"123"] options:@{} completionHandler:^(BOOL success) {
}];
它有一个参数,所以如果用户单击确认 按钮,我可以得到。
但是我不确定这个功能是否会在系统版本为 8 的设备上出现任何错误;
英语不是我的母语,请原谅我的语法错误,我在谷歌上搜索但没有找到有用的东西。
有任何想法吗 ?
非常感谢!
刘畅。
最佳答案
你的担心是对的;如果您尝试在早期版本的 iOS 上调用 iOS 10 方法,您将收到运行时“不响应选择器”异常。您有几个选择:
- 使用已弃用的方法;它现在会继续工作,但在未来的某些 iOS 版本中将不再受支持,因此您最终将不得不处理它。
- 仅针对较新版本的 iOS; iOS 用户倾向于升级,针对 iOS 9.x+ 将覆盖绝大多数 iOS 用户。这种情况下的方法仅适用于 iOS 10,此时您可能不希望切断 iOS 9(甚至 iOS 8)用户
- 在运行时检查 iOS 版本并调用适当的方法:
if ([[[UIDevice currentDevice] systemVersion] floatValue] < 10.0) {
[[UIApplication sharedApplication] openURL:@"123"];
} else {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"123"] options:@{} completionHandler:^(BOOL success) {
}];
}
关于ios - SDK版本10的功能可以在系统版本8的设备上运行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44042880/