2011-03-10 11 views
1

私は、コンテンツビューでスクロールビュー、コンテンツビュー、およびサブレイヤーとしてCATiledLayerを保持するビューコントローラを持っています。CATiledLayerの処理を中止しますか?

CATiledLayerがまだビジー状態(たとえばPDFページをレンダリング中)の間にスーパービューからコントローラビューを削除すると、私は異常なクラッシュとヌル参照を取得します。それはあなたがそれをdisturbe場合CATiledLayerのように思えます。現在何をやっているのかを中止する方法はありますか?

答えて

1

あなたが削除しているコントローラーがCATiledLayerの代理人であることは間違いありませんか?

コントローラを削除するときにCATiledLayerのデリゲートをnilに設定する必要があります。

関連リンク(自分自身の質問XD):CATiledLayer drawLayer:inContext: crashing when the view is deallocated while the image to draw is being retrieved

+0

難しいと言えます。私はMonoTouchを使っています:-) デリゲートは私のコントローラの内部クラスです。私はすでにSOを探してあなたの他の投稿を見つけましたが、それは私のためには機能しません。私はデリゲートをnullに設定しようとしましたが、おそらくMTでそのように動作しないことがあります。 – Krumelur

+0

私は参照してください。私は残念なことにMonoTouchについては考えていません。私が知っていることは、CATiledLayerがバックグラウンドで描画したいものを処理し、次に表示する準備ができたらデリゲートを呼び出すことです。そのデリゲートポインタがnilでなく、ポインタが適切なクラスを指していない場合は、ランダムクラッシュとヌル参照が発生します。 – Altealice

+0

あなたは最後にいた!しかし、私は同時に2番目の問題に直面していました。ページを変更するために、スワイプジェスチャ認識プログラムを使用します。 CocoaTouchには、それが所属するビューがスーパービューから削除されると、認識プログラムのハンドラが2回目にトリガされるバグがあるようです。これはNULLREFを引き起こし、私はそれがCATiledLayerに起因すると考えました。 – Krumelur

関連する問題