gpt4 book ai didi

ios - 如何清除/清零用于通过串行端口接收字符的 NSMutableString?

转载 作者:行者123 更新时间:2023-11-30 17:49:46 25 4
gpt4 key购买 nike

我有一个 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.";
}

}

基本上,每次发送一个字符时都会运行此方法,并将新的字符附加到先前收集的字符,然后从这些字符构造一个 NSMutableString“文本”。我无法在此方法中将字符串设置为 nil,因为它会在收到一个字符后将字符串清零,所以我需要一种方法来收集从 Arduino 发送的所有字符,并且在发送所有字符后,然后我需要将字符串“text”设置为零。原因是,如果我点击“openValve”按钮并打开阀门,Arduino 会一次向 iPhone 发送一个字符“{valve_open}”,最终将满足“文本”字符串条件。现在,当我按下关闭阀门按钮时,字符串“文本”仍将包含打开阀门状态的字符。

最佳答案

[text setString:@""]; 

应从字符串中删除字符。请注意,为此使用 NSString 可能不一定是一件好事,因为您没有考虑到 NSString 可以存储多字节数据。对于您正在做的事情来说可能已经足够好了,但是您最好使用 NSUTF8Encoding (或 Arduino 发送给您的任何内容)将 arduino 输出存储到 NSData 对象中,然后根据需要将其转换为字符串。如果您打算继续使用 NSStrings,您可能需要使用 [text isEqualToString:@"{valve_close}"]。

关于ios - 如何清除/清零用于通过串行端口接收字符的 NSMutableString?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17685947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com