iOS開(kāi)發(fā)中遇到的坑

1.iOS中NSString類(lèi)型轉(zhuǎn)換成Float類(lèi)型會(huì)出現(xiàn)精度不準(zhǔn)確的問(wèn)題,如果用于數(shù)字的比較會(huì)出現(xiàn)比較大大問(wèn)題!!

NSString *amout = @"100000.43";
NSLog(@"%f",amout.floatValue);//輸出結(jié)果是100000.429688

//NSNumber轉(zhuǎn)換成float類(lèi)型的時(shí)候也是會(huì)出現(xiàn)精度不準(zhǔn)確的問(wèn)題。
NSNumber *number = @100000.43;
NSLog(@"%f-----%f",number.floatValue,number.doubleValue);
//輸出結(jié)果100000.429688-----100000.430000

所以遇到NSString、NSNumber轉(zhuǎn)換數(shù)值類(lèi)型的時(shí)候一定要用.doubleValue
PS 如果你非得需要這么精確的計(jì)算,使用[NSDecimalNumber decimalNumberWithString:]來(lái)得到一個(gè)NSDecimalNumber,可以通過(guò)這個(gè)類(lèi)的函數(shù)進(jìn)行加減乘除運(yùn)算。

2.UITextField輸入時(shí)文字往下偏移

方案一:好像如果把borderStyle設(shè)置為none的話,輸入中文的時(shí)候就文字就會(huì)都偏下。我的解決辦法是把borderStyle設(shè)置為roundedRect, 這樣textField就有個(gè)_UITextFieldRoundedRectBackgroundViewNeue的子視圖, 然后給刪除掉就行了。如vSearchInput.subviews[0].removeFromSuperview()
方案二:


F34F4EF0-D488-467A-BBB7-BCA4A192C004.png

3.iOS中處理后臺(tái)返回的null的情況

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

2.牛逼的老外寫(xiě)了一個(gè)Category,叫做NullSafe ,在運(yùn)行時(shí)操作,把這個(gè)討厭的空值置為nil,而nil是安全的,可以向nil對(duì)象發(fā)送任何message而不會(huì)奔潰。這個(gè)category使用起來(lái)非常 方便,只要加入到了工程中就可以了,你其他的什么都不用做,對(duì),就是這么簡(jiǎn)單。詳細(xì)的請(qǐng)去Github上查看;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容