在ios8中调用功能需要9-10秒才能打开拨号屏幕

时间:2015-06-03 09:06:03

标签: objective-c ios8 phone-call

我写了下面的拨打电话代码,按下通话键后需要9-10秒打开拨号屏幕。

   NSString *phoneURLString = [NSString stringWithFormat:@"tel:%@", phoneNumber];      
   NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@",phoneURLString]];
  [[UIApplication  sharedApplication] openURL:url];

还有其他方式可以打电话吗?或者我如何减少打开拨号屏幕所需的时间?

1 个答案:

答案 0 :(得分:0)

这看起来像是一个线程问题。这个代码是从主线程调用的吗?如果不是,则这是一个问题:UIKit不是线程安全的,因此您必须执行主线程中的所有操作:

NSString *phoneURLString = [NSString stringWithFormat:@"tel:%@", phoneNumber];      
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@",phoneURLString]];

dispatch_async(dispatch_get_main_queue(), ^{
    [[UIApplication  sharedApplication] openURL:url];
});