我的应用程序完全适用于调试版本,但是当我创建发布版本并将其安装在我的iphone上时,double值会神秘地改变值。我通过查看日志来了解这一点。
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。 我该如何解决这个问题?为什么它只发生在发布版本上?
答案 0 :(得分:2)
您忽略了“变量amountComplete
未使用未初始化”警告。将声明更改为
double amountComplete = 0;
double possibleTotal = 0;
(在调试模式下,完全是偶然的,这些变量的存储位置恰好在进入循环时包含浮点零。请记住,未定义的行为包括一切似乎只能工作的可能性细。)