应用程序遇到以下故障并无法理解此故障背后的原因。这个崩溃报告是我从App Store得到的。这是崩溃报告截图Xcode 8.2应用程序崩溃 - [viewcontroller .cxx_destruct]符号化崩溃报告
它主要影响在iOS 10.2。在这堂课中,我使用Google Maps,Pageviewcontroller和Timer。那么,任何人都可以告诉我如何弄清楚它?
应用程序遇到以下故障并无法理解此故障背后的原因。这个崩溃报告是我从App Store得到的。这是崩溃报告截图Xcode 8.2应用程序崩溃 - [viewcontroller .cxx_destruct]符号化崩溃报告
它主要影响在iOS 10.2。在这堂课中,我使用Google Maps,Pageviewcontroller和Timer。那么,任何人都可以告诉我如何弄清楚它?
由于通过使用addObserverforKeyPath:@"myLocation" options:NSKeyValueObservingOptionNew
从Google地图中提取用户当前位置,因此发生了此故障。
虽然dealloc谷歌地图,那么你需要删除这个观察者。否则,应用程序将崩溃并出现以下错误
NSInternalInconsistencyException:类GMSMapView的实例0x1759f350被释放,而键值观察者仍在其中注册。现有的观测信息:(背景:为0x0,物业:0x177a4490>)
你需要添加谷歌地图之前的addObserver到的MapView像以下:
// Listen to the myLocation property of GMSMapView.
[mapView_ addObserver:self
forKeyPath:@"myLocation"
options:NSKeyValueObservingOptionNew
context:NULL];
self.view = mapView_;
// Ask for My Location data after the map has already been added to the UI.
dispatch_async(dispatch_get_main_queue(), ^{
mapView_.myLocationEnabled = YES;
});
#pragma mark - KVO updates
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context {
if (!firstLocationUpdate_) {
// If the first location update has not yet been received, then jump to that
// location.
firstLocationUpdate_ = YES;
CLLocation *location = [change objectForKey:NSKeyValueChangeNewKey];
mapView_.camera = [GMSCameraPosition cameraWithTarget:location.coordinate
zoom:14];
}
}
然后还添加以下代码去除观察者
- (void)dealloc {
[mapView_ removeObserver:self
forKeyPath:@"myLocation"
context:NULL];
}
了解更多详情:Google Maps iOS SDK, Getting Current Location of user
取悦你非凡的破发点 – ajjjjjjjj
这个崩溃报告是我从App Store得到的。在测试/调试时,我没有遇到这个问题/崩溃。 –
@AntonyRaphel要求他们提供步骤进行复制,因为您无法做到,他们会提供帮助,或者他们必须已经采取措施重新检查他们的答复。 – iphonic