?
文章目錄
- 引言
- I、簽名數(shù)組ASCII碼排序優(yōu)化
-
- 1.1 優(yōu)化數(shù)組元素的排序
- 1.2 新增集合元素排序:
- 1.3 微信支付參數(shù)值為空不參與排序的處理方案
- II、編譯相關問題
-
- 2.1 為什么我下載demo后,在xcode12中允許報錯:library not found for -lAXIndicatorView;請問怎么解決?
?
引言匯總本博客精品資源相關問題和解決方案(持續(xù)更新)
I、簽名數(shù)組ASCII碼排序優(yōu)化1.1 優(yōu)化數(shù)組元素的排序
- 用戶你好,針對你的問題,我修改內(nèi)容如下
數(shù)組的地方,我的規(guī)則是[] 表示數(shù)組,數(shù)組元素是用,分隔[,,,] 進行遞歸拼接的。
你認為數(shù)組ASCII碼排序的地方是錯誤的話,你可以打印排序之后的字符串,看排序與你服務側的拼接規(guī)則哪里不一樣。把規(guī)則修改為與后臺的數(shù)組排序規(guī)則一致即可。
/** - 處理key對應的Value是數(shù)組的情況 */ + (NSString *)sortedDictionaryArr:(NSArray *)arr { NSMutableString *contentString =[NSMutableString string]; #pragma mark - ******** 可選 arr = [self sortedArrBykey:sortedArray];// for ( id obj in arr ) { NSString * tmp = @""; if(contentString.length<1 || [contentString isEqualToString:@""]){// } else{ [contentString appendString:@","]; } if( [obj isKindOfClass:NSDictionary.class]){ tmp = [self sortedDictionary:obj]; } // 數(shù)組就[] else if( [obj isKindOfClass:NSArray.class]){ tmp = [self sortedDictionaryArr:obj]; tmp = [NSString stringWithFormat:@"%@%@%@",@"{",tmp,@"}"]; } else{ tmp= obj; } [contentString appendFormat:@"%@",tmp]; } contentString = [NSString stringWithFormat:@"%@%@%@",@"[",contentString,@"]"]; return contentString; }
例子:編輯門店的商品的價格
請求報文:
{ "adjustStocks" : [ { "nnewStockNum" : "0", "productId" : "1280072986512433152", "newStockNum" : "0", "oldStockNum" : "0", "storeId" : "25063", "productSkuId" : "1280072986516627456", "batchNo" : "" } ], "modifyPrices" : [ { "tagId" : "25063", "productNewPrice" : "5", "productSkuId" : "1280072986516627456", "type" : "1", "productId" : "1280072986512433152", "productOldPrice" : "33" } ] }
簽名元字符串的ASCII碼排序
adjustStocks=[batchNo=&newStockNum=0&nnewStockNum=0&oldStockNum=0&productId=1280072986512433152&productSkuId=1280072986516627456&storeId=25063]&modifyPrices=[productId=1280072986512433152&productNewPrice=55&productOldPrice=5&productSkuId=1280072986516627456&tagId=25063&type=1]&appsecret=4f7b71
1.2 新增集合元素排序:
對于數(shù)組排序,我的初步想法是,先按照數(shù)組元素的class類型進行分組,其中的子數(shù)組是字符串類型的話,就對其進行排序之后再重新組合到新的數(shù)組中。然后再進行遍歷遞歸拼接
/** 1、新增集合元素排序:對于數(shù)組排序,我的初步想法是,先按照數(shù)組元素的class類型進行分組,其中的子數(shù)組是字符串類型的話,就對其進行排序之后再重新組合到新的數(shù)組中。然后再進行遍歷遞歸拼接 */ + (NSMutableArray *)sortedArrBykey:(NSArray *)array { // 對數(shù)組先按照class類型進行排序 //1)取出分組 // NSArray *arDistinct = [array valueForKeyPath:@"@distinctUnionOfObjects.class"];// 無法獲取到字典class類型 // NSMutableArray *classArr = [NSMutableArray arrayWithArray:arDistinct]; NSMutableArray *strclassArr = [NSMutableArray array]; NSMutableArray *nostrclassArr = [NSMutableArray array]; for (NSObject* obj in array) { if([obj isKindOfClass:NSString.class]){ [strclassArr addObject:obj]; }else{ [nostrclassArr addObject:obj]; } } // 4)按照日期進行分組 NSMutableArray* sortedArray = [NSMutableArray array]; strclassArr = [strclassArr sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2){ return [obj1 compare:obj2 options:NSNumericSearch]; }]; [sortedArray addObjectsFromArray:strclassArr]; [sortedArray addObjectsFromArray:nostrclassArr]; return sortedArray; }
1.3 微信支付參數(shù)值為空不參與排序的處理方案
參數(shù)為空的 只要排序之前從字典移除即可。
II、編譯相關問題規(guī)則的原因 :簽名只對針對重要的字段,值可空的參數(shù)可不必參加
2.1 為什么我下載demo后,在xcode12中允許報錯:library not found for -lAXIndicatorView;請問怎么解決?
原因:這是找不到 CocoaPods庫 AXIndicatorView。是 AXWebViewController庫依賴于它
- 解決方法: 你更新 pod ‘AXWebViewController’ 即可。
1、只更新指定的庫,其它庫忽略:pod update AXWebViewController --verbose --repo-update
2、pod update會更新所有的類庫,獲取最新版本的類庫
exit 0% ? retail git:(develop) ? cat ~/bin/knpod #!/bin/sh #該命令只安裝新添加的庫,已更新的庫忽略 pod install --verbose --no-repo-update #該命令只更新指定的庫,其它庫忽略 #pod update 庫名 --verbose --no-repo-update exit 0% ? retail git:(develop) ?
?
本文摘自 :https://blog.51cto.com/i