0

ライン

UIImage *tempImage = [UIImage imageNamed:@"gradient-image"];

バックグラウンド スレッドの NSOperation 内で実行されます。コードは次のメッセージで中断されます。

[UIImageAsset retain]: message sent to deallocated instance

の名前gradient-imageで画像がありImages.xcassetsます。正直なところ、他にどのような情報が関連するかさえわかりません。

これはまれに発生するため、一貫して再現することはできません。少しグーグルで検索しましたが、あまり結果がありません。そこで、ここで SO に関する質問を作成することにしました。

4

1 に答える 1

1

のAppleのドキュメントから直接UIImage imageNamed::

このメソッドがスレッドセーフであると想定することはできません。

オブジェクトをロードするときは、メイン スレッドにいる必要がありUIImageます。それらを使用するときはどのスレッドでもかまいませんが、それらをロードするにはメインスレッドが必要です。

于 2015-02-16T15:02:44.053 に答える