Objective c NSDictionary-打印阵列

Objective c NSDictionary-打印阵列,objective-c,cocoa,sorting,macos,nsdictionary,Objective C,Cocoa,Sorting,Macos,Nsdictionary,这个网站很棒,我收到了很多回复,所以我试着把之前遇到的问题编码下来 NSMutableArray *sort = [NSMutableArray arraywithArray:[dic allValues]]; for(NSString *s in sort){ [Purchases appendString:[NSString stringWithFormat:@"%@",s]]; } textview.text = Purchases; 输出的顺序仍然不像我打开Plist

这个网站很棒,我收到了很多回复,所以我试着把之前遇到的问题编码下来

NSMutableArray *sort = [NSMutableArray arraywithArray:[dic allValues]]; 

for(NSString *s in sort){
    [Purchases appendString:[NSString stringWithFormat:@"%@",s]]; 
} 
textview.text = Purchases; 
输出的顺序仍然不像我打开Plist文件时那样显示。。。 另外还有一个补充说明,您是否可以在资源文件夹中写入和打开plist文件

谢谢你的帮助

编辑:

2010-02-12 23:54:35 -0500 
2010-02-12 23:29:11 - 0500 
2010-02-12 23:54:42 - 0500 
2010-02-12 23:54:58 - 0500  
这是我得到的命令

但当我打开plist文件时,顺序是:

2010-02-12 23:29:11 -0500 
2010-02-12 23:54:35 -0500 
2010 02-12 23:54:42 - 0500 
2010 02-12 23:54:58 - 0500 

^^这是我想要的顺序,除了降序

[dic allValues]
不会以任何可靠的顺序返回键。它在下面使用了一个集合,这意味着它是无序的

如果您正在寻找一本同时维护插入顺序的词典,请查看该词典的一部分
CHOrderedDictionary

我想以降序显示它(最新日期时间第一)

那你就需要。您不能指望字典以任何顺序为您提供其内容,即使是您加载或插入内容的顺序。

如指定,值的顺序也未指定。因此,您需要在迭代之前使用的排序方法之一对键进行排序

例如,此代码将按升序对字符串值进行排序:

NSArray *sort = [[dic allValues] sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];

for(NSString *s in sort){
    [Purchases appendString:[NSString stringWithFormat:@"%@",s]]; 
} 
textview.text = Purchases; 

请参阅以了解排序数组(选择器、块等)的各种方法。

能否显示预期的顺序和获得的顺序?我有一种感觉,您可能希望对字典中的键数组进行排序,而不是对值数组进行排序,然后使用排序后的键访问字典。当您将内容存储在字典中时,您将失去所有排序。是的,我希望对日期+时间的键进行排序,并希望按降序显示(最新日期时间优先)。。。