iOS下单签名串之字典通过key值进行降序排列

1.下单的时候,用于签名的原始串是一个参数的集合,有时候需要我们进行排序。假如用于签名的字段有,name,age,sex,三个字段。我们可以在下单接口中先定义一个字典,将数据传进来即可。

//我们用于排序的字段

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"Danny",@"name",@"12",@"age",@"man",@"sex",nil];

2.逻辑:通过取出字典的所有key值,利用sortedArrayUsingComparator进行排序,通过排序后的key值取value,从而达到排序的目的。

3.&&&上代码啦啦。。。

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"Danny",@"name",@"12",@"age",@"man",@"sex",nil];

NSArray *allKeyArray = [dict allKeys];

NSArray *afterSortKeyArray = [allKeyArray sortedArrayUsingComparator:^NSComparisonResult(id  _Nonnull obj1, id  _Nonnull obj2) {

NSComparisonResult resuest = [obj2 compare:obj1];

return resuest;

}];

NSLog(@"afterSortKeyArray:%@",afterSortKeyArray);

//通过排列的key值获取value

NSMutableArray *valueArray = [NSMutableArray array];

for (NSString *sortsing in afterSortKeyArray) {

NSString *valueString = [dict objectForKey:sortsing];

[valueArray addObject:valueString];

}

NSLog(@"valueArray:%@",valueArray);

3.打印log信息:

log:

afterSortKeyArray:(

sex,

name,

age

)

valueArray:(

man,

Danny,

12

)

4.接下来我们就可以进行我们签名参数的排列了,生成signString后可以进行MD5加密。

NSMutableArray *signArray = [NSMutableArray array];

for (int i = 0 ; i < afterSortKeyArray.count; i++) {

NSString *keyValue = [NSString stringWithFormat:@"%@=%@",afterSortKeyArray[i],valueArray[i]];

[signArray addObject:keyValue];

}

//signString用于签名的原始参数集合

NSString *signString = [signArray componentsJoinedByString:@"&"];

NSLog(@"signString:%@",signString);

打印log:

signString:sex=man&name=Danny&age=12

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 01-常量与变量 学习swift第一步打印Hello World print("Hello World") swi...
    iOS_恒仔阅读 10,651评论 2 19
  • 大三,中秋节 一个看老电影,从头哭到尾。最近并没有什么大事,周期性情绪崩盘来临,一个个小情绪的堆积渐渐如黑云压城,...
    荏苒不念阅读 1,144评论 0 0
  • 体验:今天和同事前往探望产后的同事,只是在群里发布了下信息,很多同事不约而同地自打从心里送上满满的祝福和心意,并且...
    summerzsf阅读 1,397评论 0 0
  • 这家店位于崇文门国瑞城这边,之前参加某活动时领到一张他家的红酒领取券,某工作日恰好去市政府办事,离着近便去尝试一下...
    竞走的蜗牛阅读 2,707评论 0 0
  • 一、 属性类型 ECMA-262 第 5 版在定义只有内部才用的特性(attribute)时,描述了属性(prop...
    angelwgh阅读 9,868评论 0 0