GoogleマップiOS+ストーリーボード+セグエ=クラッシュ
-
21-12-2019 - |
質問
私のアプリで私がしていることは次のとおりです:
コアデータにいくつかのデータをロードし、それが終了したら、アプリは次のビュー(googleマップ)にセグエする必要があります
[self performSegueWithIdentifier:@"loadMap" sender:self];
しかし、私はこのエラーを取得します
Terminating app due to uncaught exception 'GMSThreadException', reason: 'All calls to the Google Maps SDK for iOS must be made from the UI thread'
私はこのすべてを行うが、ボタンをタップしてセグエを作ると、すべてが正常に動作します。
ストーリーボードのGoogleマップビューコントローラには、initコードを持つGMSMapViewビューアウトレットがあります
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:45.331875
longitude:14.450455
zoom:14];
self.mapView.camera = camera;
GMSMarker *marker = [[GMSMarker alloc] init];
marker.position = camera.target;
marker.title = @"Test title";
marker.snippet = @"Lorem ipsum...";
marker.map = self.mapView;
誰でもここで私を助けることができますか?Storyboardを使用してgoogleマップでview controllerをプログラムでロードするにはどうすればよいですか?
解決
例外は、バックグラウンドスレッドでセグエを実行しようとしていることを示しているようです。クラッシュを防ぐには、代わりにメインスレッドを使用する必要があります。あなたの包みなさい performSegueWithIdentifier:sender:
メインスレッドを使用するには、次のようにします:
dispatch_async(dispatch_get_main_queue(), ^{
[self performSegueWithIdentifier:@"loadMap" sender:self];
});
他のヒント
スウィフトのために:
dispatch_async(dispatch_get_main_queue(), {})
それらのカーリーにコードを投げます。..
所属していません StackOverflow