我是一个名为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];
答案 0 :(得分:0)
SIGSEGV
通常意味着您正在尝试访问内存,而您无权访问。 (顺便说一下你是用发布版本测试的吗?)也许f.e.这里(还有一些其他类似的地方):
c = 0;
while (secon>0) {
int digitt = secon % 10;
digitarray[c] = digitt;
secon /= 10;
c++;
}
有一些可能性:
secon
(可怕的变量名称btw ...)是float
或double
,在这种情况下,while loop
要么永远不要输入,要么永远不会离开digitarray
的界限要解决此问题,我建议您在代码的开头部分使用断点并逐步检查。