iOS开发中遇到的坑

1.iOS中NSString类型转换成Float类型会出现精度不准确的问题,如果用于数字的比较会出现比较大大问题!!

NSString *amout = @"100000.43";
NSLog(@"%f",amout.floatValue);//输出结果是100000.429688

//NSNumber转换成float类型的时候也是会出现精度不准确的问题。
NSNumber *number = @100000.43;
NSLog(@"%f-----%f",number.floatValue,number.doubleValue);
//输出结果100000.429688-----100000.430000

所以遇到NSString、NSNumber转换数值类型的时候一定要用.doubleValue
PS 如果你非得需要这么精确的计算,使用[NSDecimalNumber decimalNumberWithString:]来得到一个NSDecimalNumber,可以通过这个类的函数进行加减乘除运算。

2.UITextField输入时文字往下偏移

方案一:好像如果把borderStyle设置为none的话,输入中文的时候就文字就会都偏下。我的解决办法是把borderStyle设置为roundedRect, 这样textField就有个_UITextFieldRoundedRectBackgroundViewNeue的子视图, 然后给删除掉就行了。如vSearchInput.subviews[0].removeFromSuperview()
方案二:


iOS开发中遇到的坑_第1张图片
F34F4EF0-D488-467A-BBB7-BCA4A192C004.png

3.iOS中处理后台返回的null的情况

解决方案:
1.如果使用了AFNetworking添加下面代码
AFJSONResponseSerializer *response = [AFJSONResponseSerializer serializer];
response.removesKeysWithNullValues = YES;
manager.responseSerializer = response;

2.牛逼的老外写了一个Category,叫做NullSafe ,在运行时操作,把这个讨厌的空值置为nil,而nil是安全的,可以向nil对象发送任何message而不会奔溃。这个category使用起来非常 方便,只要加入到了工程中就可以了,你其他的什么都不用做,对,就是这么简单。详细的请去Github上查看;

你可能感兴趣的:(iOS开发中遇到的坑)