UIPickerViewが計算タスクによって「飢え」ている状況があります。つまり、非常に重い計算タスクが発生しているため、UIPickerViewが更新されることはなく、したがってメッセージが送信されることもありません。ピッカーは計算の側面を制御するので、2つはうまく機能する必要があります。
別のスレッドで計算を実行することを考えました。そのようにすると、ピッカーは自由に更新できるようになります。ただし、計算をマルチスレッド可能にするのは大変な作業になるので、別の解決策を見つけたいと思います。
ピッカー(または他のUIコントロール)がコードブロックの実行を「プリエンプション」することは可能ですか?計算はループ内にあります。反復回数が重くなります。ピッカーがどこかにフラグを設定することさえできれば、ループはそれ自体を壊す可能性があり、それはプログラムのフローで機能します。
ループがピッカーをポーリングできる場合は、それも機能します。しかし、私はそれを行う方法を見つけていません。
アイデア?
(ps。昨日同様の質問を投稿しましたが、実際には正しく質問していませんでした。当時の問題が何であったかはよくわかりませんでした。)