我有一个 NSMutableString,我想在收到来自 Arduino 的一系列字符后清除它。接收字符的方法如下所示,
# pragma mark - JailbrokenSerialDelegate
- (void) JailbrokenSerialReceived:(char)ch {
//NSLog(@"Received %c", ch);
[text appendFormat:@"%c", ch];
//[text stringByAppendingFormat:@"%c",ch];
NSLog(@"Received %@",text);
if ([text isEqual: @"{valve_open}"]) {
_lblValveState.text = @"Valve Opened.";
}
if ([text isEqual: @"{valve_close}"]) {
_lblValveState.text =@"Valve Closed.";
}
}
基本上,每次发送一个 char 时都会运行此方法,并将新的 char 附加到先前收集的 char 中,然后从 char 构造一个 NSMutableString“文本”。我不能在这种方法中将字符串设置为零,因为它会在收到一个字符后将字符串清零,所以我需要一种方法来收集从 Arduino 发送的所有字符,并且在发送完所有字符之后,然后我需要将字符串“text”设置为零。原因是如果我点击“openValve”按钮并打开阀门,Arduino 会一次将字符“{valve_open}”发送到 iPhone,最终将满足“文本”字符串条件。现在,当我按下关闭阀门按钮时,字符串“文本”仍将包含打开阀门状态的字符。