Свойство serviceSubscriberCellularProviders
on CTTelephonyNetworkInfo
возвращает словарь из CTCarrier
объектов с ключом String.
var serviceSubscriberCellularProviders: [String : CTCarrier]?
Вы можете видеть это в заявленных результатах: CTCarrier (0x28282e610) {...
.
Как вы получили этот вывод, неясно, так как ваш опубликованный код, хотя синтаксис правильный, никогда не использует сгенерированную info
словарную переменную.
То есть с правильным кодом (при условии, что ключом является serviceSubscriberCellularProvider
):
let networkStatus = CTTelephonyNetworkInfo()
if let info = networkStatus.serviceSubscriberCellularProviders,
let carrier = info["serviceSubscriberCellularProvider"] {
//work with carrier object
print("MNC = \(carrier.mobileNetworkCode)")
}
Но, похоже, это не работает на iPhone 7 с одной SIM-картой под управлением iOS 12.0.1. serviceSubscriberCellularProviders
ноль. Возможно, новые телефоны с двумя SIM-картами будут реагировать по-другому.
Однако устаревшее свойство все еще работает.
let networkStatus = CTTelephonyNetworkInfo()
if let carrier = networkStatus.subscriberCellularProvider {
print("MNC = \(carrier.mobileNetworkCode ?? "NO CODE")")
}