iOS报错terminate_handler unexpectedly threw an exception

今天遇到了一个非常奇葩的坑,但是我又不得不承认这也算是一个bug。
由于感觉这可能是万分之一的踩坑概率,所以我想把这个记录下来,
万一有和我一样莫名其妙被坑的人呢,嘿嘿......

这里写图片描述
早上有公司小姑娘找我说这个页面闪退,打不开。我默默拿出自己的手机试了一下,简直是完美无bug,并没有她说的闪退。我设想了各种可能,也许是她的账号数据的问题,或者她手机内存不足吧之类的。结果用我的手机登录了她的账号之后,并没有闪退,这就排除了账号问题。于是我用她的手机断点调试了一下,报错terminate_handler unexpectedly threw an exception,而且就崩溃在了下面这段代码块。于是我把这个代码注释了之后她的手机终于不闪退了。这个时候真相浮出了水面,这个姑娘手机的语言设置的是德语!!!(摊手)德国回来的妹子就是洋气。。。。。。于是我长了见识,德语中的小数点是逗号,类似100,00这种写法。所以为了迎合小姑娘用德语的心愿,我不得不加了一下判断。
下面介绍一下具体实现的方法。

+ (NSMutableAttributedString *)setAmountStringRoundNumberColor:(UIColor *)roundColor font:(UIFont *)roundFont
                                              DecimalNumberColor:(UIColor *)decimalColor font:(UIFont *)decimalFont
                                                   TotalString:(NSString *)totalString
{
    NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc] initWithString:totalString];

    // 整数部分
    NSRange range;
    if([totalString rangeOfString:@"."].location !=NSNotFound)//_roaldSearchText
    {
         range = [totalString rangeOfString:@"."];
    }
    else
    {
         range = [totalString rangeOfString:@","];
    }

    NSString *rangeString = [totalString substringToIndex:range.location + 1];
    NSRange roundRange = [totalString rangeOfString:rangeString options:NSBackwardsSearch];
    [attributedStr addAttribute:NSForegroundColorAttributeName value:roundColor range:roundRange];
    [attributedStr addAttribute:NSFontAttributeName value:roundFont range:roundRange];

    // 小数部分
    NSString *leftString = [totalString substringFromIndex:range.location + 1];
    rangeString = [totalString substringWithRange:NSMakeRange(range.location + 1, leftString.length - 1)];
    NSRange decimalRange = [totalString rangeOfString:rangeString options:NSBackwardsSearch];
    [attributedStr addAttribute:NSForegroundColorAttributeName value:decimalColor range:decimalRange];
    [attributedStr addAttribute:NSFontAttributeName value:decimalFont range:decimalRange];

    return attributedStr;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值