11

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

无法检索运营商名称

ViewController在我的第一个甚至加载之前出现错误消息。我搜索了类似(但不相同)CarrierName问题的解决方案。他们中的大多数人建议导入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) failure)

输入 viewDidLoad

mapView 区域集

4

4 回答 4

0

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

于 2017-06-20T22:09:26.263 回答
0

在我的 iOS 设备上发生这种情况是因为 Settings->Privacy->Location Settings<(app name)->Allow Location Settings 未设置为“从不”或“While Using the App”。一旦我设置它 - 它就可以工作。

于 2016-12-21T19:00:53.753 回答
0

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

在 Xcode 中

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

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

于 2017-03-04T17:22:29.953 回答
0

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

于 2016-11-20T07:51:01.970 回答