iPhone redpark在大约20次读数后崩溃

iPhone redpark在大约20次读数后崩溃,iphone,objective-c,arduino,Iphone,Objective C,Arduino,我有下面的代码,我想知道为什么在aprox之后。arduino我的应用程序崩溃了20次。它与NSmutableArray有关。我有 NSMutableArray*值 而.m看起来像这样: - (void) readBytesAvailable:(UInt32)length { myString = [NSMutableString stringWithString:@""]; int bytesRead = [rscMgr read:rxBuffer Length:length

我有下面的代码,我想知道为什么在aprox之后。arduino我的应用程序崩溃了20次。它与NSmutableArray有关。我有

NSMutableArray*值

而.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];

}
-(void)readbytesavable:(UInt32)长度
{
myString=[nsmutablestringwithstring:@'';
int bytesRead=[rscMgr read:rxBuffer Length:Length];
for(int i=0;i
(这不是一个真正的答案,但它太长了,无法发表评论)

  • 即使由于电缆已连接,无法在Xcode中调试程序,您也可以稍后将iPhone连接到Xcode,并在Organizer窗口中查看控制台输出和设备日志
  • 您确定
    rxBuffer
    足够大以容纳数据吗
  • 我会在不同的地方添加
    NSLog()
    语句来缩小问题的范围。特别是
    length
    bytesRead
    的值会很有趣

    • 我会尽力解释。readBytesAvailable方法有一个循环,在每次迭代中,仅从数据缓冲区生成一个字符。 然后,如果您试图将Arduino发送到iPhone的完整行划分为数字,则会导致该应用程序崩溃。 例如,Arduino发送下一个由3个数字组成的字符串:“25 13 16” iPhone应用程序在readBytesAvailable启动时,执行多次迭代,直到缓冲区为空,在循环内执行操作: it.1=2 it.2=5 it.3= it.4=1 它是0.5=.3 it.6= it.7=1 it.8=6
      it.9=

      错误消息是什么
      NSMutableArray*值未在代码中使用。是什么让你认为错误与此有关?没有错误消息,应用程序只是崩溃了。问题是我无法记录这些事情,因为redpark电缆已连接。但是,当您使用它时,我实例化数组的方式没有问题吗?谢谢您的回答,这实际上很有帮助@莫瑞德:好的,很好。您是否解决了问题,还是希望提供更多信息以便我们能够帮助您?