我有一个NSMutableArray,它加载了来自字典的信息......
[self.data removeAllObjects];
NSMutableDictionary *rows = [[NSMutableDictionary alloc] initWithDictionary:[acacheDB.myDataset getRowsForTable:@"sites"]];
self.data = [[NSMutableArray alloc] initWithArray:[rows allValues]];
行字典中有两个键值对。
我需要按字母顺序对self.data NSMutableArray进行排序。
这是如何完成的?
感谢
托尼
答案 0 :(得分:4)
如果值是纯字符串,则可以使用以下命令创建排序数组:
NSArray *sorted = [values sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
答案 1 :(得分:0)
这应该做:
[self.data removeAllObjects];
NSArray *values = [[acacheDB.myDataset getRowsForTable:@"sites"] allValues];
NSSortDescriptor *alphaDescriptor = [[NSSortDescriptor alloc] initWithKey:@"DCFProgramName" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)];
NSArray *sortedValues = [values sortedArrayUsingDescriptors:[NSMutableArray arrayWithObjects:alphaDescriptor, nil]];
[alphaDesc release];
[self.data addObjectsFromArray:sortedValues];
NSMutableArray
。NSMutableDictionary
。NSMutableArray
。此外:代码中存在严重的内存泄漏。 (2x alloc + 0x release = 2x leak)
修改:更新的代码段,以反映OP对数据结构的更新。