Ios 我有一个数组,它包含数千条记录

Ios 我有一个数组,它包含数千条记录,ios,objective-c,arrays,Ios,Objective C,Arrays,我想用Year-wise对数组进行排序,创建Year-wise数组,创建整个主数组,有人能帮我吗 NSArray *anArray = @ @{@"newsID" : @"1",@"userID" : @"3",@"catID" : @"2",@"news" : @"may i know",@"date" : @"Tue, 22 May 2013 00:00:00 GMT+05:30"},]; 您可以使用排序描述符进行排序 NSArray *sortedArrayWithDate = [anA

我想用Year-wise对数组进行排序,创建Year-wise数组,创建整个主数组,有人能帮我吗

NSArray *anArray = @ @{@"newsID" : @"1",@"userID" : @"3",@"catID" : @"2",@"news" : @"may i know",@"date" : @"Tue, 22 May 2013 00:00:00 GMT+05:30"},];

您可以使用排序描述符进行排序

NSArray *sortedArrayWithDate = [anArray sortedArrayUsingComparator:
                                        ^(id obj1, id obj2) {
                                            NSString  *dt1string = [obj1 objectForKey:@"date"];
                                            NSString *dt2string = [obj2 objectForKey:@"date"];
                                            NSDate *dt1 =[self converttoDate : dt1string];
                                            NSDate *dt2 =[self converttoDate : dt2string];
                                            return [dt1 compare:dt2];

                                        }];
您必须为converttoDate创建函数,该函数将字符串作为参数返回日期 您可以很容易地找到根据日期格式将日期转换为字符串的函数

stringtodate的参考文件

[http://stackoverflow.com/questions/4380381/convert-string-to-date-in-my-iphone-app][1]
[http://stackoverflow.com/questions/936969/nsdate-and-nsdateformatter-short-format-date-and-time-in-iphone-sdk][2]

我认为第二个日期字符串是指
obj2
。另外,作为一个次要的改进,请确保
convertToDate
不会每次实例化一个新的日期格式化程序,因为这是一个相对昂贵的过程。缓存它。除了OP有一本字典。@HotLicks-我怀疑他真的有一系列字典,但省略了开头的
@[
。你会在结尾看到结尾的
]
。我怀疑在删去他样本中多余的部分以使其更简洁的过程中出现了编辑错误。标题、文本和额外的
@
清楚地表明他打算指定一个数组。@Rob-这里的人们尝试使用字典,如数组,反之亦然,这是非常常见的。@HotLicks-是的,我知道,但我认为,开始时的浮动
@
和额外的结束
]
同样可能是一个简单的编辑错误。我不一定会得出这样的结论:OP忽略了字典和数组之间的区别。数组不是保存这么多信息的地方,听起来你需要为自己建立一个数据库!不管代码应该是什么,它不是数组!我认为他漏掉了@[从数组开始应该是这样的NSArray*anArray=@[{“newsID”],…如果你将数据哑到数据库中,并按日期查询数据会更好,如果你有大量数据,首先你需要了解数组和字典之间的区别!!额外的“@”是干什么用的??