2016-12-09 2 views
1

나는 CoreTelephony 프레임 워크를 사용하여 아름답게 작동하는 전화 상태의 변화를 감지하는 앱을 개발했습니다. (다른 StackOverflow 대답에서 활용) 스위프트 코드의 일반적인 형식은 다음과 같습니다 CoreTelephony 프레임 워크는 크게 사용되지 않습니다와 CallKit 프레임 워크에 의해 대체 된 것처럼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 
    } 
} 

, 나는 동등한 CallKit이 코드를 교체하고 싶습니다 프레임 워크 스위프트 코드입니다. 나는 이것을하기 위해 제한된 지식을 사용하려했지만 성공하지 못했습니다.

도움이 되었으면 감사하겠습니다.

미리 감사드립니다. let o = c.callObserver

  • o.setDelegate(delegateThatIWillCreate, queue: DispatchQueue(label:"dispatchQueue for delegate"))
  • let c = CXCallController()
  • +0

    문제가 무엇인지 조금 더 구체적으로 설명해야합니다. –

    답변

    0
    1. 대리자를 구현합니다.
    2. 승리!
    +0

    Joe - 답변 해 주셔서 감사합니다. 나는 당신의 응답을 받아들이고 그것을 적용하려고 노력했습니다, 행운이 없습니다. 나는 스위프트 (그리고 객체 지향 프로그래밍) 초보자이며 여전히 "델리게이트", 특히 코드 포맷을 연구하려고합니다. 현재 코드와 동일한 기능을 제공하는 델리게이트 구현 코드를 확장 할 수있는 기회. 미리 감사드립니다. – rdcmole