本当に奇妙なバグを追跡していました。 UILabelは上書きされていましたが、コードではそれ以上のリリースはありませんでした。私がラベルのリリースをコメントアウトした場合、コードはうまくいきました。バックグラウンドスレッドでペン先をロード
私はそれをバックグラウンドスレッドでリリースされていたUIViewにトラッキングしました。あなたがメインスレッドからすべてのUI要素にアクセスするはずですが、どちらが正しいかは分かりません。私はコードが何をしていたかの詳細に入る必要はありませんが、私の質問がある
[[NSBundle mainBundle] loadNibNamed:@"nib name" owner:self options:nil];
:私は、使用してバックグラウンドスレッドでロードされていたのnibファイルを見つけ
場合loadNibNamedはバックグラウンドスレッドで呼び出され、ロードされたビューはnibローディングプロセスによってキャッシュされます。その後、メインスレッドはそのnibもロードしますが、キャッシュからロードします。私のオブジェクトがリリースされたとき - バックグラウンドでペン先からロードされたビューもバックグラウンドで解放されますか?とにかくバックグラウンドスレッドが存在しなくなるので実際には意味がありません....
私は分かりませんが、GCDディスパッチのコードのloadNibNamed部分を同期してラップすることで解決しました。
はい、私は私の質問でそれを引用しました。私の質問は、他のスレッドでのペン先の読み込みと、キャッシュされたオブジェクトがスレッド間で共有されることです。 – bandejapaisa