現在、私はサーバーから次のビューのデータを取得しています。 これが続く間に、ユーザーにローディングインジケーターが表示されます。 データがロードされた後、メインスレッドは通知を受けて、新しいビューのペン先をロードします。別のスレッドでNibを読み込むことはできますか? (iPhone dev)
ご質問は: 私はすでにこの読み込み機構を持っているため、安全にnibを作業スレッドにロードして、メインスレッド内から押し込むことはできますか?
現在、私はサーバーから次のビューのデータを取得しています。 これが続く間に、ユーザーにローディングインジケーターが表示されます。 データがロードされた後、メインスレッドは通知を受けて、新しいビューのペン先をロードします。別のスレッドでNibを読み込むことはできますか? (iPhone dev)
ご質問は: 私はすでにこの読み込み機構を持っているため、安全にnibを作業スレッドにロードして、メインスレッド内から押し込むことはできますか?
UIKit
はスレッドセーフではないので、セカンダリスレッドでペン先をロードするのはかなり安全ではないと思われます。 UIViewControllerでペン先を読み込んでメインスレッドから表示するだけでうまくいくかもしれませんし、別の場所で破損するかもしれません。
私は、performSelectorOnMainThread:withObject:waitUntilDone
について知っていて、セカンダリスレッドからメインスレッドにメソッドをディスパッチするとします。ペン先をロードするときに、セカンダリスレッドからこれを試してみてください。
EDIT:
何の作業スレッドがデータを取得している間、作業スレッドが行っているとき、メインスレッドが唯一の表示ペン先のビューを持つように、ペン先ををプリロードは?
これはトリックを行うだろうが、メインスレッドがペン先をロードしている間、ローディングインジケータは停止します。 – Odys
あなたの説明はあまり明確ではありませんが、データのダウンロードは別のスレッドによって行われていると思います。このスレッドは、ダウンロードが完了したときにメインスレッドを呼び出しています。私は正しい ? –
はい、あなたは正しいです。申し訳ありませんが不明である – Odys