一連の手順を1つずつ実行する必要があります。全部で、whileループの内側にある3つのステップを実行する必要があります。3つのテストが完了したら、そのときだけ、ユーザーはwhileループを終了する必要があります。問題は、これらの手順を順番に実行する必要があり、ユーザーが各テストを順番に実行する必要があることです。合格した場合は、次の手順に進みます。
関連するコードは次のとおりです。
int passCount = 0;
BOOL flatPass = FALSE;
BOOL landscapePass = FALSE;
BOOL portraitPass = FALSE;
while (passCount < 3) {
if (flatPass == FALSE) {
if (device.orientation == UIDeviceOrientationFaceUp || device.orientation == UIDeviceOrientationFaceDown) {
[self pushSound];
}
}
else if (landscapePass == FALSE) {
if (device.orientation == UIDeviceOrientationLandscapeLeft || device.orientation == UIDeviceOrientationLandscapeRight) {
[self pushSound];
}
}
else if (portraitPass == FALSE) {
if (device.orientation == UIDeviceOrientationPortrait || device.orientation == UIDeviceOrientationPortraitUpsideDown) {
[self pushSound];
}
}
}
ユーザーがiOSデバイスを各位置に配置する必要があり、テストが成功したことを示すためにビープ音が鳴ります。3つのテストがすべて順番に完了したら、ユーザーをループから終了させます。テストがクリアされるたびに、passCountカウンターを1ずつインクリメントして、ループから抜ける3に到達するまで計算します。私の問題は、各テストをどのように、そして順番に実行するかです。