我是iphone开发的新手。我最近有一个可变数组,其中诸如标题,日期,网址和摘要等值被存储为“密钥对象”。密钥是myurl,mudate,mytitle,mysummary.I want在引用日期时对该可变数组进行排序,并根据该值打印所有值。如何实现?请帮助我。谢谢。
[item setObject:currentTitle forKey:@"title"];
[item setObject:currentLink forKey:@"link"];
[item setObject:currentSummary forKey:@"description"];
[item setObject:currentDate forKey:@"pubDate"];//
[item setObject:currentImage forKey:@"imagePath"];
[recent addObject:[item copy]];
所有都是xml解析的内容。
答案 0 :(得分:7)
所以我猜你有一系列字典。有几种方法可以做到这一点,但我建议使用NSSortDescriptor
。你会想做这样的事情:
//myArray is the name of the your array
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"mydate" ascending:YES]; // If you want newest at the top, pass NO instead.
[myArray sortUsingDescriptor:descriptor]; // This will modify myArray. To return a new array and leave the original untouched, use -sortedArrayUsingDescriptor:.
[descriptor release];
NSLog(@"%@", myArray); // Print.
如果您已将日期作为NSDate
个对象,则可以正常使用。如果没有,您将需要循环遍历数组并预先解析日期,或使用initWithKey:ascending:selector:
NSSortDescriptor
方法,这允许您定义自定义比较方法。
答案 1 :(得分:0)
答案 2 :(得分:0)
Swift 3.0
let descriptor = NSSortDescriptor(key: "Your array KEY", ascending: false)
yourArray.sort(using: [descriptor])
升序排序使其成为真正的"否则就把它弄错了#34;