无法检索运营商名称

Posted

技术标签:

【中文标题】无法检索运营商名称【英文标题】:Unable to retrieve CarrierName 【发布时间】:2017-04-03 16:54:33 【问题描述】:

使用iPhone6,Xcode 8.1,运行ios 10.1.1,执行以下 我不断得到的 Swift 代码

在我的第一个 ViewController 甚至加载之前出现错误消息。 我搜索了类似(但不相同)CarrierName 问题的解决方案。他们中的大多数建议导入CoreTelephony。我添加了导入 CoreTelephony 但我仍然遇到同样的错误。下面是代码 sn-p 显示 viewDidLoad 后跟控制台输出。对此错误有何见解?

//  ViewController.swift
//  MapLocator

import UIKit
import MapKit
import CoreLocation
import CoreTelephony


class ViewController: UIViewController, UISearchBarDelegate, MKMapViewDelegate,UINavigationControllerDelegate 
    var searchController:UISearchController!
    var annotation:MKAnnotation!
    var localSearchRequest1:MKLocalSearchRequest!
    var localSearchRequest2:MKLocalSearchRequest!
    var localSearch1:MKLocalSearch!
    var localSearch2:MKLocalSearch!
    var localSearchResponse1:MKLocalSearchResponse!
    var localSearchResponse2:MKLocalSearchResponse!
    var error:NSError!
    var pointAnnotation:MKPointAnnotation!
    var pinAnnotationView:MKPinAnnotationView!
    var placeMark1:MKPlacemark!
    var myRoute : MKRoute?
    var coord1 : CLLocationCoordinate2D!
    var coord2 : CLLocationCoordinate2D!
    //    var newPt : MKMapPoint!
    
    //    var lineArrayPtr = [MKMapPoint]()
    var lineArrayPtr:UnsafeMutablePointer<MKMapPoint>? = nil
    var pointIndex : Int = 0
    
    var lp1 : MKMapPoint!
    var lp2 : MKMapPoint!
    var lp3 : MKMapPoint!
    var lp4 : MKMapPoint!
    
    var searchButtonClicked = 0
    var buttonTouchCount : Double = 0
    let tapsPerMeter : Double = 2
    var pointsPerMeter : Double!
    var tapDistance : Double!
    
    //**************
    override func viewDidLoad() 
        super.viewDidLoad()
        mapView.delegate = self
        print("Entered viewDidLoad")
        
        let latitude_x: Double = 42.755139
        let longitude_x: Double = -71.584
        
        // Init the zoom level
        let coordinate:CLLocationCoordinate2D = CLLocationCoordinate2D(latitude: latitude_x, longitude: longitude_x)
        //let span = MKCoordinateSpanMake(100, 80)
        let span = MKCoordinateSpanMake(0.01, 0.01)
        let region = MKCoordinateRegionMake(coordinate, span)
        self.mapView.setRegion(region, animated: true)
        print("mapView region set")
        
    

********************* 控制台输出 *********************** 2016-11-19 22:02:14.442048 MapLocator 3 匹配[289:23903] [LogMessageLogging] 6.1 无法检索 CarrierName。 CT错误: domain-2, code-5, errStr:((os/kern) failure)

输入 viewDidLoad

mapView 区域集

【问题讨论】:

你在哪里声明了你的 mapView?我刚刚遇到了同样的问题,我犯了一个错误,将 mapView 设置为 viewControllers 视图属性并将其添加为子视图。然后出现此日志消息,应用程序冻结。不过可能与您的错误无关。 更多信息,但没有解决方案forums.developer.apple.com/thread/69246 你有没有解决这个问题..?我有同样的问题..! 【参考方案1】:

也许这有点愚蠢,但请检查 XCode Maps 功能是否处于活动状态:)。

【讨论】:

【参考方案2】:

作为另一个问题的解决方案,我执行了以下操作。这是修复它还是只是抑制我不知道的味精,因为我收到了味精,但它从来没有让我的应用程序崩溃。

在 Xcode 中

点击停止按钮旁边的活动方案名称 点击编辑方案.... 在运行(调试)中选择参数选项卡 在环境变量中单击 + 添加变量:OS_ACTIVITY_MODE = 禁用

这里的信用:https://***.com/a/40160779

【讨论】:

【参考方案3】:

在我的 iOS 设备上发生这种情况是因为 Settings->Privacy->Location SettingsAllow Location Settings 未设置为“从不”或“使用应用程序时”。一旦我设置它 - 它就可以工作。

【讨论】:

【参考方案4】:

托盘将CoreTelephony 添加到 AppDelegate 可能吗?您的 ViewController 实现没有访问任何 CoreTelephony 框架方法,因此您的问题出在其他地方。

【讨论】:

感谢您的回复。很好的建议,但仍然收到错误。奇怪的是,我可以在 viewDidLoad 函数中放入一些代码来读取运营商名称,并且它可以正确读取。这有助于解开这个谜团吗? 运气好吗?我也遇到了这个问题。

以上是关于无法检索运营商名称的主要内容,如果未能解决你的问题,请参考以下文章

重磅三大运营商之一的智慧城市数据即将切向FIL网络,检索市场即将启动,Filecoin进入最好的投入产出阶段

苹果手机怎么设置不显示运营商名称?

苹果手机 怎么设置不显示运营商名称

网络运营商名称显示 SIM名称显示

苹果手机信号旁的英语怎么改成文字

如何在 iOS 6 模拟器中自定义运营商名称?