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

本文介绍了一种iOS下单接口中对签名参数进行降序排列的方法,包括如何从字典中提取并排序键值对,以及如何生成用于签名的字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值