查找用户是否正在通话?

我想查看用户是否正在使用该应用程序并查看他们是否正在通话。 我正在关注此链接以查看用户是否正在通话 : iOS如何检查当前是否正在通话 。 但是,这看起来像是Objective-C。 我想知道是否有Swift相当于此。 这是我的尝试:

var currCall = CTCallCenter() var call = CTCall() for call in currCall.currentCalls{ if call.callState == CTCallStateConnected{ println("In call.") } } 

但是,看起来好像call有一个属性.callState就像它在前面的例子中一样。 任何帮助,将不胜感激! 谢谢!

更新Swift 2.2:您只需要安全地解开currCall.currentCalls

 import CoreTelephony let currCall = CTCallCenter() if let calls = currCall.currentCalls { for call in calls { if call.callState == CTCallStateConnected { print("In call.") } } } 

上一个答案:您需要安全地解包告诉它是什么类型,编译器不知道。

 import CoreTelephony let currCall = CTCallCenter() if let calls = currCall.currentCalls as? Set { for call in calls { if call.callState == CTCallStateConnected { println("In call.") } } } 

iOS 10,Swift 3

 import CallKit /** Returns whether or not the user is on a phone call */ private func isOnPhoneCall() -> Bool { for call in CXCallObserver().calls { if call.hasEnded == false { return true } } return false }