我正在尝试创建一个可以连接到设备并请求查询的应用。为了能够得到答复,我需要先发送NSString
命令。我把它放在NSTimer
的循环中。
我通常在Interface Builder中有这样的东西
读: SIDDA1999AP
然后经过一段时间改为
读: @ REL10345
依此类推,直到最后一个字符串发送@“H \ r \ n”然后再回到第一个字符串。
我的部分代码基于Asyncsocket
- (void)viewDidLoad
{
[super viewDidLoad];
// Read Data as loaded
NSTimer *t;
t = [NSTimer scheduledTimerWithTimeInterval: 0.5
target: self
selector:@selector(onTick:)
userInfo: nil repeats:YES];
}
-(void)onTick:(NSTimer *)timer {
sendStr =
@"S\r"
@"@\r\n"
@"P\r\n"
@"H\r\n"
;
NSData *sendData = [sendStr dataUsingEncoding:NSUTF8StringEncoding];
[asyncSocket writeData:sendData withTimeout:-1.0 tag:0];
[asyncSocket readDataToData:[GCDAsyncSocket CRLFData] withTimeout:-1 tag:0];
}
- (void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag
{
DDLogVerbose(@"socket:didReadData:withTag:");
NSString *response = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
componentsSeparatedByString:@"L"]objectAtIndex:6];
[self debugPrint2:[NSString stringWithFormat:@"Read: \n%@",response]];
[response release];
[asyncSocket readDataWithTimeout:-1 tag:0];
}
debugPrint2我在哪里显示我的文字。
我想从debugPrint
中提取字符串并单独显示。因为它在循环数据中是动态的。我还需要提取一个子字符串(从SIDDA1999AP
缩短到1999
)。换句话说,删除前缀和后缀。
我的xib会喜欢
Data1: 1999
Data2: 10345
....
以下是我正在进行的申请的图片:
我希望有人可以提供帮助。