私のアプリケーションは VOIP テレフォニー ツールボックスです。
たとえば、発信者IDの設定を変更したい場合など、ユーザーが設定を変更するために使用できる一連のUISwitchコントロールがあります。
ユーザーが設定を変更したら、Restful API を介して Telephony プラットフォームを呼び出す必要があります。Restful 呼び出しが失敗した場合は、スイッチを以前の設定にリセットしたいと思います。たとえば、ユーザーが発信者 ID をオンにして、接続障害のために失敗した場合、スイッチをオフに戻したいと思います。
これを switchChangedValue メソッドに実装しましたが、厄介なループが作成されます。障害が発生した場合、UISwitch を以前の設定に設定しましたが、switchChangedValue メソッドが再度呼び出され、失敗するなどのループが発生します。
これが私の switchChangedValue メソッドの一部です。どんなアイデアも歓迎します。
//Check if its a valid response from the XSI server
if ([bs getHTTPResponseCode] >= 200 && [bs getHTTPResponseCode] < 300) {
//This is the successful case
}
else
{
// I throw an alert here
//Id really like to change the UISwitch back if it goes wrong but it causes a bad loop.
if (buttonstate == false){
[switchbutton setOn:YES animated:YES];
//This invokes my switchChangedValue again
}
else if (buttonstate == true){
[switchbutton setOn:NO animated:YES];
//This invokes my switchChangedValue again
} else{
NSLog(@"Something went bad");
}
[bs release];