應用程序遇到以下故障並無法理解此故障背後的原因。這個崩潰報告是我從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