所以我有一个方法 A,它基本上检查 UISwitches 的当前状态是什么,然后通过文本短信服务 API 提醒用户。然而; 因为它一直在检查引脚的状态,所以我不希望它发送 50000 次文本(向 SMS 服务发送垃圾邮件);此方法中的最后一个 FOR 循环是检查是否应该检查用户的循环;但是,在当前状态下,每当应用程序运行时,它都会不断发送垃圾邮件。
谢谢,如果您需要更多说明,请询问。
方法一:
- (void)setInput:(NCDigitalInput *)input
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *baseString;
uint8_t value = input.value;
self.inputLabel.text = [NSString stringWithFormat:@"0x%0.2X",value];
for (UISwitch *temp in switchArrayIn)
{
temp.on = (value & 1);
value >>= 1;
}
for(int i = 0; i<switchArrayIn.count; i++){
if(![defaults boolForKey:[NSString stringWithFormat:@"digitalInput%dRecentlyAlerted",i]] && ([[switchArrayIn objectAtIndex:i] isOn]) && ([defaults boolForKey:[NSString stringWithFormat:@"digitalInput%dBool",i]]) && ([defaults boolForKey:[NSString stringWithFormat:@"digitalInputAlertOn%dBool",i]])){
[defaults setBool:TRUE forKey:@"digitalInput%dRecentlyAlerted"];
baseString = [defaults objectForKey:@"digitalInput%d"];
NSString *stringSMS = [baseString stringByAppendingString:@" has turned on"];
[self digitalSMSCheck:i :stringSMS];
}
if(![defaults boolForKey:[NSString stringWithFormat:@"digitalInput%dRecentlyAlerted",i]] && !([[switchArrayIn objectAtIndex:i] isOn]) && ([defaults boolForKey:[NSString stringWithFormat:@"digitalInput%dBool",i]]) && ([defaults boolForKey:[NSString stringWithFormat:@"digitalInputAlertOff%dBool",i]])){
[defaults setBool:TRUE forKey:@"digitalInput%dRecentlyAlerted"];
baseString = [defaults objectForKey:@"digitalInput%d"];
NSString *stringSMS = [baseString stringByAppendingString:@" has turned off"];
[self digitalSMSCheck:i :stringSMS];
}
}}