iOS 總結遇到的各種坑兒
持續更新中。。。另一篇<iOS開發過程中遇到的新奇玩意兒>
一、將字串轉換成json時:
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError *err;
id obj = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers
error:&err];
如果jsonString是以下格式,即包含\r\n換行符時,會解析失敗
{"content":"測試\r\n ","url":"http://www.baidu.com"}
二、跑專案的時候報錯:dyld: Symbol not found: OBJC_CLASS$_**
如果** 是自定義類的話,只需在Build Phases中的Compile Sources點選+新增那個類的.m。
如果 ** 是frameWork的話,只需在Build Phases中的Link Binary With Libraries將對應的frameWork右側的Required改為Optional。
三、float精度問題
在宣告float的時候值就不準:
static float a = 0.8;//0.8f也一樣
列印a絕對不是0.8,要比0.8大一點
目前解決辦法:
static const float a = 0.80;//這樣完全是0.800000
手動去掉5.0、5.500這種後邊的0
-(NSString*)converFloat:(CGFloat)floatValue{
NSString * floatStr = [NSString stringWithFormat:@"%f",floatValue];
const char * floatChars = [floatStr UTF8String];
int strLength = (int)floatStr.length;
int zeroCount = 0;
for (int i = strLength-1; i>=0; i--) {
if (floatChars[i] == '0' || floatChars[i] == '.') {
zeroCount++;
if (floatChars[i] == '.') {
break;
}
}else{
break;
}
}
return [floatStr substringToIndex:strLength-zeroCount];
}
oc提供的貨幣計算,會自動去掉5.0、5.500這種後邊的0
-(NSString*)calculateFloatA:(CGFloat)a floatB:(CGFloat)b{
NSString *strA = [NSString stringWithFormat:@"%f",a];
NSString *strB = [NSString stringWithFormat:@"%f",b];
NSDecimalNumber *numberA = [NSDecimalNumber decimalNumberWithString:strA];
NSDecimalNumber *numberB = [NSDecimalNumber decimalNumberWithString:strB];
/// 這裡不僅包含Multiply還有加 減 除。
NSDecimalNumber *numResult = [numberA decimalNumberByMultiplyingBy:numberB];
NSString *strResult = [numResult stringValue];
NSLog(@"NSDecimalNumber method unrounding = %@",strResult);
return strResult;
}
四、時間NSDate 與NSString轉換
NSString轉換成NSDate會自動轉換成UTC時區。
五、tabbar圖片變大問題
R:tabbar自動放大了圖片,只要讓圖片保持原比例就行了
S: UIImage * nomalImage =[UIImage imageNamed:[NSString stringWithFormat:@"%@",imageName]];
UIImage * selectImage =[UIImage imageNamed:[NSString stringWithFormat:@"%@_sele",imageName]];
selectImage = [selectImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
nomalImage = [nomalImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
相關文章
- 總結iOS 8和Xcode 6的各種坑iOSXCode
- 使用MySQL時遇到的各種坑MySql
- IOS開發中遇到過的各種坑洞iOS
- 史上最全的iOS各種裝置資訊獲取總結iOS
- iOS 小坑總結iOS
- 程式猿的年終總結,各種版本各種殘
- 總結:使用MyBatis Generator時遇到的坑MyBatis
- css各種佈局總結CSS
- js各種驗證總結JS
- oracle 各種遷移總結Oracle
- Unix各種括號的用法總結
- 【iOS】那些年,遇到的小坑iOS
- iOS12降級遇到的各種問題彙總解答 iOS12降級失敗怎麼辦iOS
- 前端各種迴圈用法總結前端
- LaTeX中各種常用盒子的使用總結
- iOS初學之填坑總結iOS
- 美團點評CAT部署了各種環境不下10次,遇到的坑整理
- iOS 中的各種鎖iOS
- 總結我在架構師升級過程中的那些坑以及各種體會架構
- 各種內建函式技巧總結函式
- caffe中各種cblas的函式使用總結函式
- 關於Android中各種尺寸的總結Android
- iOS獲取檔案大小遇到的坑iOS
- iOS時間格式化遇到的坑iOS
- iOS各種支付大全iOS
- 初探AI之got-ocr2.0大模型本地部署與遇到的各種坑處理AIGo大模型
- Http協議中的各種長度限制總結HTTP協議
- 移動平臺各種路勁總結
- 各種平臺解壓壓縮總結
- 從request獲取各種路徑總結
- Maven-POM中的各種scope的行為總結Maven
- hadoop啟動遇到的各種問題Hadoop
- Android Webview的一些使用總結和遇到過得坑AndroidWebView
- 從IE6到IE11上執行WebGL 3D遇到的各種坑IE11Web3D
- 物聯網初創企業會遇到的四個坑兒
- Linux Shell中各種括號用法總結!Linux
- 各種SmartPhone上的跨平臺開源框架的總結框架
- iOS 各種螢幕尺寸iOS