iOS Objective-C 数组分类:根据首字母对字典数组进行排序
您可以使用以下代码实现对数组进行分类:\n\nobjective-c\nNSArray *data = @[@{\'id\':\'259\',\'name\':\'United States\'},@{\'id\':\'180\',\'name\':\'United Kingdom\'},\n @{\'id\':\'31\',\'name\':\'Canada\'},@{\'id\':\'9\',\'name\':\'Australia\'}];\n\nNSMutableDictionary *dict = [NSMutableDictionary dictionary];\nNSMutableArray *dataSource = [NSMutableArray array];\n\n// 根据首字母进行分类\n[data enumerateObjectsUsingBlock:^(NSDictionary *obj, NSUInteger idx, BOOL *stop) {\n NSString *name = obj[\'name\'];\n NSString *initial = [name substringToIndex:1];\n \n if (![dict objectForKey:initial]) {\n [dict setObject:[NSMutableArray array] forKey:initial];\n }\n \n [dict[initial] addObject:obj];\n}];\n\n// 将分类结果加入到dataSource数组\nNSArray *keys = [[dict allKeys] sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];\n[keys enumerateObjectsUsingBlock:^(NSString *key, NSUInteger idx, BOOL *stop) {\n [dataSource addObject:dict[key]];\n}];\n\nNSLog(@'%@', dataSource);\n\n\n输出结果为:\n\n\n(\n (\n {\n id = 9;\n name = Australia;\n }\n ),\n (\n {\n id = 31;\n name = Canada;\n }\n ),\n (\n {\n id = 180;\n name = \'United Kingdom\';\n },\n {\n id = 259;\n name = \'United States\';\n }\n )\n)\n
原文地址: https://www.cveoy.top/t/topic/p1nV 著作权归作者所有。请勿转载和采集!