无法检索CarrierName

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

无法检索CarrierName

我的第一个ViewController甚至加载之前出现错误消息。 我寻找类似(但不相同)的CarrierName问题的解决scheme。 他们大多推荐导入CoreTelephony 。 我添加了CoreTelephony的导入,但我仍然得到相同的错误。 以下是显示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。 CTError:domain-2,code-5,errStr :((os / kern)失败)

inputviewDidLoad

mapView区域设置

托盘添加CoreTelephony的AppDelegate也许? 您的ViewController实现不访问任何CoreTelephony框架方法,因此您的问题在别处。

在我的iOS设备上,这是因为设置 – >隐私 – >位置设置<(应用程序名称) – >允许位置设置未设置为“从不”或“在使用应用程序”。 一旦我设定 – 它的作品。

作为一个不同的问题的解决scheme,我做了以下。 无论是修复它还是只是抑制味精,我不知道,因为我得到了味精,但它从来没有崩溃我的应用程序。

在Xcode中

  • 点击停止button旁边的活动scheme名称
  • 点击Edit Scheme ….
  • 在运行(debugging)中select参数选项卡
  • 在环境variables中单击+
  • 添加variables:OS_ACTIVITY_MODE =禁用

在这里信用: https : //stackoverflow.com/a/40160779

也许这是一个愚蠢的,但检查XCode地图function是积极的:)。