iOS应用程序因NSDecimalNumber的错误值而终止

时间:2017-07-31 04:34:02

标签: ios exc-bad-access nsdecimalnumber

由于以下行出现EXC_BAD_ACCESS错误,我的iOS应用终止于Xcode模拟器

if ([amount.text isEqualToString:@""] || [chargeAmount floatValue] == 0.0) {
    // Focus on the poptip target.
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
    [transactionView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:YES];
    [self performSelector:@selector(amountRequiredPopup) withObject:nil afterDelay:0.3];
    return;
}

完整的代码块是

NSDecimalNumber* chargeAmount;

我在NSLog中检查了amount.text,它显示的是值而不是ChargeAmount。看来chargeAmount有不好的价值。 chargeAmount在.h文件的接口中定义如下:

<?php
  $list = '"02","03"';
  $friends_list_array = explode(",",$list);
  echo $friends_list_array[0];
?>

我是客观C和iOS应用开发的新手。请说明问题在哪里?提前谢谢。

2 个答案:

答案 0 :(得分:0)

我建议您将NSDecimalNumber* chargeAmount;替换为float,并将其值设置为0.0中的viewDidLoad(),然后您可以将其设置为你的代码并添加检查。

答案 1 :(得分:0)

根据您的上一条评论,因为我认为问题是您已将另一种类型的值分配到chargeAmount变量中,请搜索与chargeAmount相关的所有代码并将其发布到某些代码中您为NSMutableAttributedString变量分配chargeAmount类型值的代码的一部分,然后当您调用[chargeAmount floatValue]崩溃时,因为NSMutableAttributedString没有任何名为{{1}的方法}

希望这有助于你