方法一
-(NSString*)stringWithDict:(NSDictionary*)dict{
NSArray*keys = [dict allKeys];
NSArray*sortedArray = [keys sortedArrayUsingComparator:^NSComparisonResult(id obj1,id obj2) {
return[obj1 compare:obj2 options:NSNumericSearch];//正序
}];
NSString*str =@"";
for(NSString*categoryId in sortedArray) {
id value = [dict objectForKey:categoryId];
if([value isKindOfClass:[NSDictionary class]]) {
value = [self stringWithDict:value];
}
if([str length] !=0) {
str = [str stringByAppendingString:@","];
}
str = [str stringByAppendingFormat:@"%@:%@",categoryId,value];
}
NSLog(@"str:%@",str);
return str;
}方法二
-(NSString *)getNeedSignStrFrom:(id)obj{
NSDictionary *dict = obj;
NSArray *arrPrimary = dict.allKeys;
NSArray *arrKey = [arrPrimary sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2){
NSComparisonResult result = [obj1 compare:obj2];
return result==NSOrderedDescending;//NSOrderedAscending 倒序
}];
NSString*str =@"";
for (NSString *s in arrKey) {
id value = dict[s];
if([value isKindOfClass:[NSDictionary class]]) {
value = [self getNeedSignStrFrom:value];
}
if([str length] !=0) {
str = [str stringByAppendingString:@","];
}
str = [str stringByAppendingFormat:@"%@:%@",s,value];
}
NSLog(@"str:%@",str);
return str;
}
方法一是网上的
http://www.jianshu.com/p/753a6fd85a80
主要是排序的方式略有不同 运用递归的方法感觉挺好的
本文介绍两种Objective-C中对字典进行排序并拼接成字符串的方法,包括递归处理嵌套字典的过程。这两种方法适用于签名字符串生成等场景。
4540

被折叠的 条评论
为什么被折叠?



