AnsweredAssumed Answered

Issue freeing AGSMapView

Question asked by on Apr 5, 2018
Hi there,



So I have an issue with IOS ArcGIS where I am implementing it in a "non standard" way. I use a language that lets me write in its own syntax and then that gets transpiled to cpp/objectiveC. The language lets you write native declarations so you can map the language calls to code within native cpp files. Its a pretty powerful language in that respect and I have had a lot of experience wrapping modules similar to ArcGIS. For example I created a UIWebView wrapper that can embed a UIWebView and then interact with it. So I am just pointing out that its a thing that I know can work with this language.


So I have done the same thing with ArcGIS. I have a cpp glue class that deals with communicating from the language to an objc class which in turn interacts with a AGSMapView that it owns. The process consists of creating an AGSMapView, adding it as a child to the pre existing view and then firing off commands to through this pipeline.


I have this working fine, my issue (one of them) comes when trying to free the AGSMapView. In one particular test app I get a hard crash.


I have created a very basic stripped back version for testing the crash. Here is a snippet that causes a crash upon calling the Free().





I get a hard crash which can't be caught by an exception breakpoint! So I am a little stuck here for how to proceed.
I have another issue also. If I create a AGSMapView using the Init function in teh gist above, and the blur the app (pull notification sheet down) then I get a crash. This crash dumps something in the console:
2 Graphics_hardware_resource or Device objects have not been destructed


The number of graphics_hardware_resource depends on the amount of map tiles I have loaded, so its definitely related to AGS.
Anyone got any ideas?