我上周发布了我的第一个个人iPhone应用程序来计算12V Marine and Boat Battery usage。我在模拟器和iPhone上进行了大量测试,当我感觉很舒服时,我将应用程序存档并发布到Apple。当用户开始使用该应用时,他们注意到计算未按预期工作。下面的代码是NSManagedObject模型上的一个方法,在调试时发布时生成了一个DIFFERENT输出。
下面应该总结相关的排放项目 - 但如果没有BBDischarge项目,那么它应该返回零。相反,当没有项目(因此for循环不会触发)时,它返回一个数字,它是domesticAH(NSNumber)的直接乘积。如果我将domesticAH设置为100,则以下dischargeAH返回8,如果将domesticAH设置为1000,则返回83(浮动在显示时为圆形)。再说一次,我强调下面的工作在模拟器上运行正常,或者直接放到我的iPhone 4s上,只有通过应用程序商店发布才搞砸了。
//Other dynamics hidden for simplicity
@dynamic domesticAH;
@dynamic voltage;
@dynamic profileDischarge;
-(NSNumber*) dischargeAmpH
{
float totalWattsPD;
//Calculate the watts per day so we can accurately calculate the percentage of each item line
for(BBDischarge* currentDischarge in self.profileDischarge)
{
float totalWatt = [currentDischarge.wattage floatValue] ;
float totalMinsPD = [currentDischarge.minutesPD floatValue]/60;
float totaltimesUsed = [currentDischarge.timesUsed floatValue];
float numberInOperation = [currentDischarge.number floatValue];
totalWattsPD = totalWattsPD + ((totalWatt * totalMinsPD) * (totaltimesUsed * numberInOperation));
}
int voltage = ([self.voltage integerValue] + 1) * 12;
float totalAmpsPD = totalWattsPD / voltage;
return [NSNumber numberWithFloat:totalAmpsPD];
}
正如你所看到的,self.domesticAH在任何地方的方法中都没有特色,因为我无法在模拟器中重新创建它,所以我很难跟踪它。
几个问题: