0

NSOperationがバックグラウンドスレッドで実行されているという問題があり、その実行の実行ループで、performSelectorOnMainThreadを呼び出してNSURLRequestを実行しますが、メインスレッドがそのNSURLRequestを実行するための呼び出しを取得することはありません。

nsoperationの目的は、コアデータエンティティからjson文字列を構築することです。これは、大きなオブジェクトであるため、かなり時間がかかる可能性があります。管理対象オブジェクトのIDの参照のみを渡し、別の管理対象オブジェクトコンテキストを使用することで、コアデータスレッドの安全性を確保したので、それについて心配する必要はありません。

任意のアドバイスをいただければ幸いです。

4

1 に答える 1

0

NSOperation init 関数が間違ったスレッドからのオブジェクトを使用していないことを確認してください。思い出すと、init 関数はメイン スレッドで呼び出されていたので、そこでオブジェクト コンテキストを初期化し、main() でそれにアクセスしようとすると、バックグラウンド スレッドがクラッシュしました。現在のスレッド IDを出力して、コードのどのスレッド部分で実行されているかを調べると、デバッグに役立ちます。

于 2012-06-08T00:24:51.123 に答える