0

我的应用程序在调试版本上完美运行,但是当我创建发布版本并将其安装在我的 iphone 上时,双重值神秘地改变了值。我通过查看日志知道这一点。

double amountComplete;
double possibleTotal;

for (int i = 0; i<self.tasksArray.count; i++) {
    Task *myTask = [self.tasksArray objectAtIndex:i];
    possibleTotal = possibleTotal + [myTask.size doubleValue];

    if (myTask.completed==[NSNumber numberWithInt:1]) {
        amountComplete = amountComplete + [myTask.size doubleValue];
    }

 }

可能的金额最终是一个大数字,例如 12312213.0000。我该如何解决这个问题,为什么它只发生在发布版本上?

4

1 回答 1

2

您忽略了“amountComplete使用未初始化的变量”警告。将声明更改为

double amountComplete = 0;
double possibleTotal = 0;

(在调试模式下,完全是偶然的,这些变量的存储位置在进入循环时恰好包含浮点零。请记住,未定义的行为包括一切看起来工作正常的可能性。)

于 2013-08-29T19:04:12.860 回答