[NSDecimalNumber rangeOfCharacterFromSet:]

用 UITableVIewController 处理后台返回的数据时,在跑完 cellForRow 之后就出现闪退情况。

而XCode 并没有返回错误的代码所在,只是在控制台输出了这个错误:[NSDecimalNumber rangeOfCharacterFromSet:]

开始的时候以为只是在处理cell 中数据时候时出现的问题。

最后发现,是由于后台的弱语言关系,在返回的 json 中,数字和字符串混合在一起返回。

而 NSString 是强类型,当遇到返回的 json 中带有数字时,会已NSDecimalNumber 形式保存。

到了 Cell 处理数据时,如果没有当做数字处理,就会在显示的时候出现上述错误情况。

时间: 2024-12-28 22:07:30

[NSDecimalNumber rangeOfCharacterFromSet:]的相关文章

NSDecimalNumber用于精度准确的计算

在处理金额计算时,往往会涉及到小数,由于Double类型不准确,无法做到产品的要求.为了保证金额计算的准确性,建议使用NSDecimalNumber. 1.创建对象(常用的方法) // mantissa:长整型数值:exponent:指数(几次方):flag:正负数. + (NSDecimalNumber *)decimalNumberWithMantissa:(unsigned long long)mantissa exponent:(short)exponent isNegative:(BO

【2016-5-25】NSDecimalNumber 知识点的简单整理

NSDecimalNumber是NSNumber的子类,比NSNumber的功能更为强大,可以指定一个数的幂,四舍五入等操作. NSString类型转化成CGFloat 精度不高的情况.例如 @"8" -> 7.99999    @"1.0" -> 1.00001 由于NSDecimalNumber精度较高,所以会比基本数据类型费时,所以需要权衡考虑,苹果官方建议在货币以及要求精度很高的场景下使用. 一.一些科学计数法的简单方法. //一个关于科学计数法

-[__NSCFNumber rangeOfCharacterFromSet:]: unrecognized selector sent to instance 0x7fa5216589d0

这个算是类型的不匹配,就是把NSNumber类型的赋给字符串了自己还不知情,因为我的是测试,代码如下(viewController.m里面) - (void)viewDidLoad { [super viewDidLoad]; bankAccount = [[BankObject alloc] init]; [bankAccount setValue:@"10" forKey:@"account"]; [bankAccount addObserver:self fo

YYModel 源码解读(二)之NSObject+YYModel.h (1)

本篇文章主要介绍 _YYModelPropertyMeta 前边的内容 首先先解释一下前边的辅助函数和枚举变量,在写一个功能的时候,这些辅助的东西可能不是一开始就能想出来的,应该是在后续的编码过程中 逐步添加的. #define force_inline __inline__ __attribute__((always_inline)) 这行代码用到了C语言的内联函数 内联函数: 是用inline修饰的函数,内联函数在代码层次看和普通的函数结构一样,却不具备函数的性质,内联函数不是在调用时发生控

iOS集成ApplePay

Apple Pay正式在国内上线的那天,一起工作的小伙伴就走进了Starbucks,7-11等带有银联闪付的店进行了尝鲜.不管是否要再次输入一次密码,但是它的出现确实给我们带来了极大的便捷.下面就尝试在一个Demo中来集成下Apple Pay的功能. 下面图片是借的别人的 Apple Pay流程 Apple Pay运行环境: iPhone 6以上设备,当然也包括最新出来的iPhone SE.iOS版本在9.2以上. Xcode版本号 7.2.1 APP接入ApplePay不需要POS机,但是还是

iOS 注册体验探究(转)

通常,移动App的注册功能通常采用手机号码注册或者邮箱帐号注册. 不过在国内这样隐私堪忧的环境下,需要手机号来注册会流失不少用户.即便是新浪微博这样的应用,需要绑定手机号也令我不信任.除非是像淘宝.支付宝这样需要手机号来提高安全等级的服务,才能弱化用户的心理障碍. 首先,看下手机号码注册.    (注册湖畔) 对于手机号码输入框,我们当然要默认使用UIKeyboardTypeNumberPad类型键盘.不过对于越狱用户,如果装了其它输入法,则有可能使用其它类型键盘输入非数字字符.对此,我们在客户

原 IOS之NSValue整理

原 IOS之NSValue整理 发表于2年前(2013-02-28 23:02)   阅读(1974) | 评论(0) 5人收藏此文章, 我要收藏 赞3 IOS NSValue 值对象(value object)概念 在面向对象的编程语言中,值对象本质上是数据元素的的对象包装器,所谓数据元素,常见的包含string,number,date类型以及其它自定义的结构体类型.Objective-C语言本身提供了string,number,date相对应的包装类,分别是NSString,NSNumber

iOS 基础函数解析 - Foundation Functions Reference

Foundation Functions Reference Framework Foundation/Foundation.h Declared in NSBundle.h NSByteOrder.h NSDecimal.h NSException.h NSObjCRuntime.h NSObject.h NSPathUtilities.h NSRange.h NSZone.h Overview This chapter describes the functions and function

后台传回null的崩溃容错处理

后台使用orc 数据库...对于没有赋值的字段,会返回<null> 直接使用苹果自带的kvc 去将数据转模型,,会crash      [model setValuesForKeysWithDictionary:dataDic]; 虽然后台也会尽量避免传回<null> ,但是作为程序员应该严谨对待每一个可能崩溃的问题. 有 解决方案   就是在每一个 可能传回null 的地方 使用  if([m_result isEqual:[NSNUll null]]) 去判断,但这不是一个有追