【发布时间】:2016-05-26 09:17:51
【问题描述】:
我想在 Swift 中使用subscriberCellularProviderDidUpdateNotifier,但我不知道如何以及在何处放置它。
有任何想法吗?我已经搜索过了,但只有 Objective-C 示例可用。
【问题讨论】:
标签: ios swift core-telephony
我想在 Swift 中使用subscriberCellularProviderDidUpdateNotifier,但我不知道如何以及在何处放置它。
有任何想法吗?我已经搜索过了,但只有 Objective-C 示例可用。
【问题讨论】:
标签: ios swift core-telephony
我无法对其进行测试,但这是来自此答案的代码:Possible way to detect sim card detection in ios? 翻译成swift:
override init() {
super.init()
print("init");
let info = CTTelephonyNetworkInfo()
info.subscriberCellularProviderDidUpdateNotifier = self.cellularProviderDidUpdate
}
func cellularProviderDidUpdate(inCTCarrier: CTCarrier) {
print("event")
}
别忘了import CoreTelephony
【讨论】:
在 Objective C 中你只需要使用 "set" 和属性块的名称,而在 Swift 中你需要分配它:
// Declare your class member
let networkInfo = CTTelephonyNetworkInfo();
// In viewDidLoad or in your custom method
networkInfo.subscriberCellularProviderDidUpdateNotifier = { carrier in
// Do whatever you wanna do when a callback comes
}
carrier 将是 CTCarrier 类型。
当然,您始终可以使用指向 CTCarrier 参数的 $0:
networkInfo.subscriberCellularProviderDidUpdateNotifier = {
$0
// Do whatever you need to do with it
}
而且看起来更干净。
【讨论】: