2016-12-09 27 views
1

我已经开发了一个应用程序,使用CoreTelephony框架来检测手机状态的变化,工作的很好。雨燕代码(从另一个StackOverflow答案杠杆)的一般形式是:与Swift的CallKit

import CoreTelephony 

class SomeClass: UIViewController { 

    private var callCenter = CTCallCenter() 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     callCenter.callEventHandler = { (call:CTCall!) in 

      switch call.callState { 
       case CTCallStateConnected: 
        println("CTCallStateConnected") 
        self.callConnected() 
       case CTCallStateDisconnected: 
        println("CTCallStateDisconnected") 
        self.callDisconnected() 
       default: 
       //Not concerned with CTCallStateDialing or CTCallStateIncoming 
        break 
      } 
     } 
    } 

    func callConnected(){ 
     // Do something when call connects 
    } 

    func callDisconnected() { 
     // Do something when call disconnects 
    } 
} 

由于CoreTelephony框架已基本弃用,由CallKit框架被替换,我想用相当于CallKit替换此代码框架Swift代码。我试图用我有限的知识来做到这一点,但我没有成功。

任何帮助将不胜感激。

在此先感谢。

+0

你将不得不对你的问题更具体一点。 –

回答

0
  1. let c = CXCallController()
  2. let o = c.callObserver
  3. o.setDelegate(delegateThatIWillCreate, queue: DispatchQueue(label:"dispatchQueue for delegate"))
  4. 实现委托。
  5. 赢了!
+0

乔 - 感谢我们的回应。我试图采取你的回应,并应用它,没有运气。我是一个Swift(和面向对象的编程)新手,我仍然在努力研究“代表”,特别是代码格式。任何机会,你可以扩大代码实现委托,将给我的当前代码的等效功能。提前致谢。 – rdcmole