加速度計関連の質問です。(このサイトを初めて使用するため、フォーマットが正しく表示されない場合があります)。標準コードを使用して、加速度計が期待どおりに動作するようになりました
UIAccelerometer *accel = [UIAccelerometer sharedAccelerometer];
accel.delegate = self;
accel.updateInterval = 0.1; //I also tried other update values
クラスの accelerometer:didAccelerate: メソッドが呼び出されるたびに、NSLog を使用してログを記録します。関数は期待どおりに呼び出され、ここまではすべて正常に機能します。
ただし、ループを実行すると、上記のメソッドが呼び出されないようです。このようなもの
float firstAccelValue = globalAccel; //this is the x-accel value (stored in a global by the above method)
float nextAccelValue = firstAccelValue;
while (nextAccelValue == firstAccelValue){
//do something
nextAccelValue = globalAccel; // note globalAccel is updated by the accelerometer method
}
上記のループは、accelerometer:didAccelerate: メソッドが呼び出されないため、予想どおり終了しません。そのため、globalAccel が値を変更することはありません。
固定条件を使用して while ループを中断すると、ループが終了した後、メソッド呼び出しが再び正常に機能することがわかります。
ここで明らかな何かが欠けていますか?それとも、特定の処理が行われているときに加速度計メソッドが起動しないのでしょうか?
どんな助けでも大歓迎です!ありがとう!