非常に奇妙なエラーで立ち往生しているため、私はあなたに手紙を書いています。アプリに GMS を追加しようとしましたが、最後に、デバイスの場所を取得する必要があるときに、次のクラッシュが発生しました。
キャッチされていない例外 'NSInternalInconsistencyException' が原因でアプリを終了しています。現在の観測情報: (コンテキスト: 0x0、プロパティ: 0x7ff7fdc2f470>
コードはここで初期化されます。
self.mapView.myLocationEnabled = YES;
self.mapView.mapType = kGMSTypeNormal;
self.mapView.settings.compassButton = YES;
self.mapView.settings.myLocationButton = YES;
//=> Listen to the myLocation property of GMSMapView.
[self.mapView addObserver:self
forKeyPath:@"myLocation"
options:NSKeyValueObservingOptionNew
context:NULL];
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context
{
if ([keyPath isEqualToString:@"myLocation"] && [object isKindOfClass:[GMSMapView class]])
{
appDelegate().curUserLocation = [change objectForKey:NSKeyValueChangeNewKey];
[self.mapView animateToCameraPosition:[GMSCameraPosition cameraWithLatitude:self.mapView.myLocation.coordinate.latitude
longitude:self.mapView.myLocation.coordinate.longitude
zoom:15]];
}
}
それでも成功しません。ブレークポイントをobserverValueForKeyメソッドに入れ、ここから出るとクラッシュが発生します。アイデアを得る方法はありません。
オブザーバーも削除しました:
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[self.mapView removeObserver:self forKeyPath:@"myLocation"];
//=> Set map delegate to nil (to avoid: mapView:regionDidChangeAnimated:]: message sent to deallocated instance )
self.mapView.delegate = nil;
self.mapView = nil;
}
そして成功しません。
誰でもこれで私を助けることができますか? 考えられるすべての解決策を試しましたが、できませんでした。
前もって感謝します!