6

我想知道是否有人可以告诉我如何对NSDictionary; 我想从最后一个条目开始阅读它,因为键是 Date + Time 并且我希望能够将它附加到NSMutableString. 我能够使用枚举器读取它,但我没有得到我想要的结果。

谢谢

4

2 回答 2

13

根据您的要求,最简单的方法是从键创建一个新数组,对其进行排序,然后使用该数组引用原始字典中的项目。

(注意 myComparison 是您自己的方法,将比较两个键)。

NSMutableArray* tempArray = [NSMutableArray arrayWithArray:[myDict allKeys]]; 
[tempArray sortedArrayUsingSelector:@selector(myComparison:)];

for (Foo* f in tempArray)
{
  Value* val = [myDict objectForKey:f];
}
于 2010-02-13T08:49:27.137 回答
0

我已经汇总了 StackOverflow 上的一些其他建议,将 NSDictionary 排序为非常紧凑的内容,可以按字母顺序排序。我在“路径”中有一个 Plist 文件,我将其加载到内存中并想要转储。

NSDictionary    *glossary = [NSDictionary dictionaryWithContentsOfFile: path];
NSArray         *array1 = [[glossary allKeys] sortedArrayUsingDescriptors:@[ [NSSortDescriptor  sortDescriptorWithKey:@"" ascending:YES selector:@selector(localizedStandardCompare:)] ]];
for ( int i=0; i<array1.count; i++)
{
    NSString* key = [array1 objectAtIndex:i];
    NSString* value = [glossary objectForKey:key];
    NSLog(@"Key=%@, Value=%@", key, value );
}
于 2013-12-15T20:02:38.893 回答