开发者

CATiledLayer drawLayer:inContext: crashing when the view is deallocated while the image to draw is being retrieved

My app crashes when my ViewController gets deallocated while my CATiledLayer is retrieving the image to draw in a background thread. I get a message

-[MyViewController respondsToSelector:]: message sent to deallocated instance 0x8f58e00

and the debugger shows

0 ___forwarding___
1 __forwarding_prep_0__
2 -[CATiledLayer(CATiledLayerPriv开发者_开发知识库ate) canDrawRect:levelOfDetail:]
3 tiled_layer_render
4 CAImageProviderThread
5 CAImageProviderBackgroundThread
6 CA::DispatchGroup::thread
7 thread_fun
8 _pthread_start

Now, I do want to release that certain instance of MyViewController because I don't need it anymore. But how do I stop it from crashing when it returns from the background thread?


Solved it. I should have set the CATiledLayer's delegate to nil when deallocating MyViewController. I'll remember to do that for delegates from now on.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜