如果你碰到如题的要求.那么我分享的一个小方法就很适合你.
可以根据需要改改就能符合项目的要求了.希望对你有帮助!
// 传入一个原始字典,依据ascii码从小到大排序,回传一个排好序的待签名字符串
- (NSString *)sortArrWithDictionary:(NSDictionary *)dictionary {
// 取出所有的key值
NSArray *keys = [dictionary allKeys];
//按字母顺序排序
NSArray *sortedArray = [keys sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
return [obj1 compare:obj2 options:NSNumericSearch];
}];
// 将排好的序的key值重新赋值
NSMutableArray *jsonArr = [NSMutableArray array];
[sortedArray enumerateObjectsUsingBlock:^(NSString * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
// 取出每一个keyValue值
NSString *str = dictionary[obj];
// = [NSString stringWithFormat:@"\"%@\":\"%@\"", obj, dictionary[obj]];
[jsonArr addObject:str];
}];
// 将做好排序的数组转出字符串
NSString *result = [jsonArr componentsJoinedByString:@""];//&
result = [NSString stringWithFormat:@"%@", result];
return result;
}
网友评论