我正在使用适用于 iOS 的 RedPark 串行电缆做一些工作。这是一条允许 iOS 设备和其他设备(如微控制器)之间进行串行通信的电缆。
RedPark SDK 附带了一种读取串行线路上可用字节的方法。只要电缆接收到信息,就会调用此方法。
(void)readDataBytes(UInt32 bytes) {
NSString *s = [[NSString alloc] initWith...bytes];
NSString *editedString = [self extractSubStringMethod:s];
[myArray addObject:editedString];
}
微控制器正在以以下格式发送信息
<msg>xxxxxxxxxxxxx</msg>
我希望能够从消息中提取 x(作为 NSString 接收)。目前我正在使用 NSRange 提取位置 4(第一个 x)之后和最后一个“< /msg>”之前的所有内容,我不相信它有效,想知道还有其他想法吗?
最后,我有一个与它一起运行的 NSThread,我将消息添加到 NSMutableArray。所以我想要的是,当从电缆接收到消息时,NSThread 将处理/显示消息信息。我有类似以下的东西
//Thread method,
while([myArray count] > 0) //Don't believe this is neccesary but its in anyway
{
for(int i = 0; i < [myArray count]; i++){
NSString *string = [myArray objectAt(i)];
[self displayString:string];
[myArray removeObjectAt(i);
}
}
我相信它在上面崩溃了...... [self displayString:string] 只是设置标签的值,比如
-(void)displayString(NSString *string) {
label.text = [string charAt(1)];
}
上面的代码只是记忆中的,因为我把我的 Mac 留在家里并且正在工作。任何建议/帮助将不胜感激