I think it may be that traffic events enter and lasts in NSOperation. An operation can begin, and then refer to map graphic elements that no longer exist in MapView. For example, a user can scroll through a map, and NSOperation can “stand in line” and then end when the target area leaves the field of view. A crash is clearly a memory violation. Usually caused by code trying to access freed memory.
I would suggest you study using NSOperationQueue. I see how this will make the map interaction smoother, and this part may be fine, but in combination with the “events” can cause problems.
From the crash, I see that it runs on CFRunLoop and starts NSTimer. NSTimers are notorious for not completely stopping at Objective C. When they finally fire, the elements they work with are usually executed and free their memory.
source share