CTCallCenter崩溃

时间:2013-10-08 10:23:28

标签: ios phone-call core-telephony

我正在开发一个必须与电话呼叫状态同步的iPhone应用程序。我目前正在播放音频和/或与外部配件通信,因此我的应用程序可以在后台运行。因此,当有电话时,我会显示一个视图,告诉用户正在进行电话呼叫。我正在使用CTCallCenter(在我的appDelegate中使用实例变量)来响应电话呼叫状态,每次测试是否有电话时我都会分配该实例。 Bur每次分配该实例时,有时我会遇到有关“CUTWeakReference”类的奇怪崩溃。我想知道当应用程序在后台或暂停时是否有使用CTCallCenter的最佳实践以防止崩溃发生?感谢

1 个答案:

答案 0 :(得分:0)

要考虑解决此问题的要点。

有一个iOS错误会导致CTCallCenter类的实例在解除分配后有时会收到通知。不是实例化,使用和释放实例,而是必须保留并永远不释放它们以解决错误。

[[CTCallCenter alloc] init]必须在主队列中运行。它是否安全?最好只在主线程上调用它。

static CTCallCenter *netInfo; static dispatch_once_t dispatchToken; 
if (!netInfo) {
    dispatch_once(&dispatchToken, ^{ 
        netInfo = [[CTCallCenter alloc] init]; 
    }); 
}