私のアプリケーションはVOIP電話ツールボックスです。UISwitchがRestful API呼び出しを呼び出し、UISwitch値を元に戻したい場合
私は一連のUISwitchコントロールを用意しています。ユーザーは、たとえば発信者ID設定を変更したい場合など、設定を変更できます。
ユーザーが設定を変更すると、Restful APIでテレフォニープラットフォームに電話をかける必要があります。 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];
実際には、ユーザーが手動でスイッチをオフにしても、Voipプラットフォームで設定をオフにするにはAPI呼び出しを行う必要があります。 –
更新済み!それは助けなければならない。 – codykrieger