aprox 20读数后iPhone redpark崩溃

时间:2012-08-18 12:34:29

标签: iphone objective-c arduino

我有以下代码,我想知道为什么在aprox之后。来自我的应用程序arduino的20个测量值崩溃。它与NSmutableArray有关。我的.h我有

NSMutableArray * values;

.m看起来像这样:

- (void) readBytesAvailable:(UInt32)length
{

    myString = [NSMutableString stringWithString:@""];
    int bytesRead = [rscMgr read:rxBuffer Length:length];
    for (int i = 0; i < bytesRead; i++) 
    {
    [myString appendString:[NSString stringWithFormat:@"%c",((char *)rxBuffer)[i]]];
    }
    NSArray *arrayValues = [myString componentsSeparatedByString:@","];
    textView.text = [arrayValues objectAtIndex:1];

}

2 个答案:

答案 0 :(得分:1)

我会尽力解释一下。 readBytesAvailable方法有一个循环,在每次迭代中,只从数据缓冲区生成一个字符。 然后,如果你试图分成数字,Arduino发送到iPhone的完整行会导致该应用程序崩溃。 例如,Arduino发送下一个3个数字的字符串:&#34; 25 13 16&#34; 当readBytesAvailable启动时,iPhone应用程序执行几次迭代,直到缓冲区为空,在循环内执行操作:     IT.1 = 2     it.2 = 5     it.3 =     it.4 = 1     it.5 = 0.3     it.6 =     it.7 = 1     它。8 = 6     it.9 =

答案 1 :(得分:0)

(这不是一个真正的答案,但评论的时间太长了。)

  • 即使您无法在Xcode中调试程序,因为已连接电缆,您可以稍后将iPhone连接到Xcode,并在管理器窗口中查看控制台输出和设备日志。
  • 您确定rxBuffer对于数据来说足够大吗?
  • 我会在各个点添加NSLog()语句来缩小问题范围。特别是lengthbytesRead的价值会很有趣。