Google Maps iOS SDK зависает и вылетает после обновления GMSPolygon.map - PullRequest
3 голосов
/ 08 мая 2019

У меня странный редкий сбой, в моем приложении я использую много GMSMarker, со многими большими GMSPolygon's, а иногда зависает приложение (например, вы используете рекурсию без выхода) и получаете сбой

В коде я использую GMSMapView clear(), обновление GMSMarker's и в updateOverlays я устанавливаю все свои GMSPolygon's мои GMSMapView

Я использую GoogleMaps версии 3.1.0 через CocoaPods

Вот след:

Crashed: com.apple.main-thread 
EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x3fe62e42f0000030
0  AppName                       0x100dcfa5c gmscore::vector::GMSMarkupMultiZoomLinesInstance::CreateLines(gmscore::model::PolylineSpan2D const&, std::__1::map<int, unsigned int, std::__1::less<int>, std::__1::allocator<std::__1::pair<int const, unsigned int> > > const&, int, float, CapShape, CapShape) + 292612
1  AppName                       0x100dce62c gmscore::vector::GMSMarkupMultiZoomLinesInstance::GenerateLinesAndStyleTable(std::__1::vector<gmscore::vector::MarkupPolyline const, std::__1::allocator<gmscore::vector::MarkupPolyline const> > const&, gmscore::vector::GeometryScaleMode) + 287444
2  AppName                       0x100dceff4 gmscore::vector::GMSMarkupMultiZoomLinesInstance::GMSMarkupMultiZoomLinesInstance(GMSPolygon2D*, GMSPolygonDrawStyle*, gmscore::vector::GeometryScaleMode, GMSGLTileResources*, GMSServerResourceManager*, unsigned long, GMSMarkupTapItem*, unsigned int, float, float) + 289948
3  AppName                       0x100dd5cf8 gmscore::vector::GMSMarkupPolygonInstance::GMSMarkupPolygonInstance(GMSPolygon2D*, GMSPolygonDrawStyle*, gmscore::vector::GeometryScaleMode, GMSGLTileResources*, GMSServerResourceManager*, unsigned long, GMSMarkupTapItem*, unsigned int) + 317856
4  AppName                       0x100dd5dd8 gmscore::vector::GMSMarkupPolygonInstance::GMSMarkupPolygonInstance(GMSPolygon2D*, GMSPolygonDrawStyle*, gmscore::vector::GeometryScaleMode, GMSGLTileResources*, GMSServerResourceManager*, unsigned long, GMSMarkupTapItem*, unsigned int) + 318080
5  AppName                       0x100dd7a60 -[GMSMarkupProvider setPolygon:style:tappable:scaleMode:priority:itemID:tapPriority:] + 325384
6  AppName                       0x100ad2f00 -[GMSMapView updateOverlay:] + 7832
7  AppName                       0x100af0368 -[GMSOverlay setMap:] + 127744
8  AppName                       0x10085652c closure #1 in SomeView.updateOverlays() (<compiler-generated>)

и иногда сбой выглядит так:

Crashed: com.apple.main-thread
0  AppName                       0x1015adea4 gmscore::vector::GMSMarkupMultiZoomLinesInstance::GenerateLinesAndStyleTable(std::__1::vector<gmscore::vector::MarkupPolyline const, std::__1::allocator<gmscore::vector::MarkupPolyline const> > const&, gmscore::vector::GeometryScaleMode) + 285516
1  AppName                       0x1015aeff4 gmscore::vector::GMSMarkupMultiZoomLinesInstance::GMSMarkupMultiZoomLinesInstance(GMSPolygon2D*, GMSPolygonDrawStyle*, gmscore::vector::GeometryScaleMode, GMSGLTileResources*, GMSServerResourceManager*, unsigned long, GMSMarkupTapItem*, unsigned int, float, float) + 289948
2  AppName                       0x1015b5cf8 gmscore::vector::GMSMarkupPolygonInstance::GMSMarkupPolygonInstance(GMSPolygon2D*, GMSPolygonDrawStyle*, gmscore::vector::GeometryScaleMode, GMSGLTileResources*, GMSServerResourceManager*, unsigned long, GMSMarkupTapItem*, unsigned int) + 317856
3  AppName                       0x1015b5dd8 gmscore::vector::GMSMarkupPolygonInstance::GMSMarkupPolygonInstance(GMSPolygon2D*, GMSPolygonDrawStyle*, gmscore::vector::GeometryScaleMode, GMSGLTileResources*, GMSServerResourceManager*, unsigned long, GMSMarkupTapItem*, unsigned int) + 318080
4  AppName                       0x1015b7a60 -[GMSMarkupProvider setPolygon:style:tappable:scaleMode:priority:itemID:tapPriority:] + 325384
5  AppName                       0x1012b2f00 -[GMSMapView updateOverlay:] + 7832
6  AppName                       0x1012d0368 -[GMSOverlay setMap:] + 127744

Есть идеи, что не так и как это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...