4

CATiledLayer がバックグラウンド スレッドで描画する画像を取得しているときに ViewController の割り当てが解除されると、アプリがクラッシュします。メッセージが届きます

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

とデバッガーが表示されます

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

ここで、MyViewController の特定のインスタンスを解放したいと思います。もう必要ないからです。しかし、バックグラウンド スレッドから戻ったときにクラッシュしないようにするにはどうすればよいでしょうか。

4

1 に答える 1

6

解決しました。MyViewController の割り当てを解除するときに、CATiledLayer のデリゲートを nil に設定する必要がありました。これからは代表者のためにそれを行うことを忘れないでください。

于 2010-09-08T17:56:06.527 に答える