CATiledLayer drawLayer:inContext:当正在检索要绘制的图像时取消分配视图时崩溃

Alt*_*ice 4 core-graphics ipad catiledlayer

当我的CATConLayer检索要在后台线程中绘制的图像时,我的应用程序在我的ViewController被取消分配时崩溃了.我收到一条消息

-[MyViewController respondsToSelector:]: message sent to deallocated instance 0x8f58e00
Run Code Online (Sandbox Code Playgroud)

并且调试器显示

0 ___forwarding___
1 __forwarding_prep_0__
2 -[CATiledLayer(CATiledLayerPrivate) canDrawRect:levelOfDetail:]
3 tiled_layer_render
4 CAImageProviderThread
5 CAImageProviderBackgroundThread
6 CA::DispatchGroup::thread
7 thread_fun
8 _pthread_start
Run Code Online (Sandbox Code Playgroud)

现在,我确实想要发布MyViewController的某个实例,因为我不再需要它了.但是当它从后台线程返回时如何阻止它崩溃?

Alt*_*ice 6

解决了它.我应该在解除分配MyViewController时将CATiledLayer的委托设置为nil.从现在开始,我会记得为代表们这样做.