我的应用程序是一个 VOIP 电话工具箱。
我有一系列 UISwitch 控件,用户可以使用它们来更改他们的设置,例如,如果他们想改变他们的呼叫者 ID 设置。
当用户更改设置时,我需要通过其 Restful API 调用 Telephony 平台。如果 Restful 调用失败,那么我想将开关重置为之前的设置。例如,如果用户打开来电显示,并且由于连接失败而失败,我希望开关恢复为关闭状态。
我在我的 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];