无法检索运营商名称
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 函数中放入一些代码来读取运营商名称,并且它可以正确读取。这有助于解开这个谜团吗? 运气好吗?我也遇到了这个问题。以上是关于无法检索运营商名称的主要内容,如果未能解决你的问题,请参考以下文章