SIGSEGV错误发生在实际设备上,但不发生在ios模拟器上

时间:2013-04-16 19:49:49

标签: ios crash uiimageview nsarray sigsegv

我是一个名为CountdownCenter的cydia调整的开发者。我试图为我的小部件创建一个数字时钟外观,所以我创建了一个完美的样本应用程序。在这之后,我将这些数据传输到我的调整代码中,但这会导致我的iPhone上出现SIGSEGV崩溃。经过一些测试后,我找到了导致崩溃的部分,但我找不到有什么问题,因为这部分适用于普通应用程序。你能帮帮我吗?

以下是代码:

int digitarray[10];
    int c = 0;
    digitarray[0] = 0;
    digitarray[1] = 0;
    while (secon>0) {
        int digitt = secon % 10;
        digitarray[c] = digitt;
        secon /= 10;
        c++;
    }
        lbl.text = [NSString stringWithFormat:@"%d", digitarray[0]];
          [self selectimage:digitarray[0] img:numview10];

1 个答案:

答案 0 :(得分:0)

SIGSEGV通常意味着您正在尝试访问内存,而您无权访问。 (顺便说一下你是用发布版本测试的吗?)也许f.e.这里(还有一些其他类似的地方):

c = 0;
while (secon>0) {
    int digitt = secon % 10;
    digitarray[c] = digitt;
    secon /= 10;
    c++;
}

有一些可能性:

  • secon(可怕的变量名称btw ...)是floatdouble,在这种情况下,while loop要么永远不要输入,要么永远不会离开
  • c变得如此之大,以至于超出digitarray的界限

要解决此问题,我建议您在代码的开头部分使用断点并逐步检查。