我创建了一个按钮来呼叫某人,我曾经这样编码:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"123"] options:@{} completionHandler:^(BOOL success) {
}];
但是现在我注意到这个功能有一个警告,在iOS10中Apple为它提供了一个新功能,它在这里:
- (void)changeTimeIntervalWithInterval:(NSInteger)timeInterval{
if (self.timer) {
[self.timer invalidate];
self.timer = nil;
self.timer = [NSTimer scheduledTimerWithTimeInterval:timeInterval target:self selector:@selector(printHH) userInfo:nil repeats:YES];
}
}
它有一个参数,所以如果用户点击确认按钮,我就可以获得该参数。
但是如果设备有系统版本8会出现任何错误,我不确定此功能;
英语不是我的母语,请原谅我的语法错误,我在谷歌搜索但没有任何用处。
有任何想法吗 ?
非常感谢!
刘畅。
答案 0 :(得分:1)
你是正确的;如果您尝试在早期版本的iOS上调用iOS 10方法,您将获得运行时“不响应选择器”异常。您有几个选择:
if ([[[UIDevice currentDevice] systemVersion] floatValue] < 10.0) {
[[UIApplication sharedApplication] openURL:@"123"];
} else {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"123"] options:@{} completionHandler:^(BOOL success) {
}];
}
答案 1 :(得分:1)
您应该检查Base SDK版本和iOS版本,然后使用不同的API,如下所示:
#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_9_3
if ([UIDevice currentDevice].systemVersion.floatValue > 10.0f) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"123"] options:@{} completionHandler:^(BOOL success) {
}];
} else {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"123"]];
}
#else
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"123"]];
#endif