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;
请参阅以了解排序数组(选择器、块等)的各种方法。能否显示预期的顺序和获得的顺序?我有一种感觉,您可能希望对字典中的键数组进行排序,而不是对值数组进行排序,然后使用排序后的键访问字典。当您将内容存储在字典中时,您将失去所有排序。是的,我希望对日期+时间的键进行排序,并希望按降序显示(最新日期时间优先)。。。