0

私はこのロジックについて何も知らないので、コードを投稿しないで申し訳ありません。

ユーザーがボタンを押すとすぐに実行され、もう一度押すと停止するwhileループがあります。しかし、条件が満たされるまで、短時間チェックする必要がある条件があります(タイマーは私のニーズを満たしていません)。したがって、その条件が満たされるまでコードのその部分を実行したいのですが、その後はその条件をチェックするためにコードのその部分を必要としません。つまり、保存できるようにプログラムがコードのその部分の実行を停止するようにしたいのです。コードのその部分のために私の実行時間が無駄になりました。

それで、これは可能ですか?それとも、プログラミングでは達成できないことですか?

これを行うためにタイマーを実装したくないことに注意してください。

編集済み(確立する必要がある作業)

確認しているのは加速度計の更新です...ユーザーがボタンを押すと更新が開始されます。特定の値を超えたかどうかをチェックする条件を設定しました。超えた場合は、カウントをグローバル変数に格納したいと考えました。その後、私が言ったように、その状態のチェックを繰り返す必要はありません。ユーザーがボタンを押して停止しない限り、一度開始したアクセルデータを停止するつもりはないのでしょうか?

4

2 に答える 2

2

あなたのコードがどのように見えるかはわかりません...しかし、はい、これは通知を介して簡単に達成できるものです(つまり、「NSNotifications」に登録し、何らかの条件が満たされたときに通知を投稿し、リッスンしている他のオブジェクトが実行されます「停止」するセレクター)。または、 Key-Value-Observing を介して他のスレッドに何らかの条件を監視させることもできます。これにより、(コードの各セクションが監視している) BOOL 条件が変更されたときに、実行中の処理を終了できます。

うまくいけば、これはこれまでのところ理にかなっていますが、全体的な考え方は「はい、あなたが求めていることは実行するのがそれほど難しくないはずです」です.

于 2012-06-23T11:34:27.140 に答える
0
while(mainCondition)
{
    if(!extraCondidion)
    {
        // Do extra bit of code only until extra condition is met
    }

    // Do normal code that runs before and after extra condition is met
}
于 2012-06-23T12:48:00.097 に答える