我想创建一个自己的结构或类来获取用户的当前位置。
似乎我无法在结构中使用CLLocationManager及其函数(didUpdateLocations,didFailWithError等)(Xcode使所有文本颜色变黑并且我收到错误{ {1}})。当我使用一个类并尝试使用" getPlacemark" -function(从实例类中获取地标)或者直接从创建的实例中获取它(" instancedClass.placemarkInClass" ),但没有任何作用,我只得到An internal error occurred. Source editor is limited.
。
这是我创建课程的最后一次尝试:
Thread 1: EXC_BAD_ACCESS
在我的ViewController中,我将其设为实例变量( currentLocation = CurrentLocation())并尝试使用它们
让userPlacemark = currentLocation.getPlacemark() 和 让userPlacemark = currentLocation.placemark 但没有任何效果。
有没有办法让自己的类或结构来获取当前位置并在其他ViewControllers中使用它?
答案 0 :(得分:1)
您的代码有两个观察结果:
完成成员变量设置后,您没有在init中调用[super init]。将init修改为
init(){
placemark = CLPlacemark()
mLocationManager = CLLocationManager()
mLocationManager.desiredAccuracy = kCLLocationAccuracyBest
mLocationManager.requestWhenInUseAuthorization()
mLocationManager.startUpdatingLocation()
super.init()
mLocationManager.delegate = self
}
设置位置管理员的代表。您应该在创建位置管理器实例后立即在init中执行此操作。请参阅上面的init代码。