我有一個字典數組。每個字典都有一個鍵爲@「date」的字符串對象。我需要按此日期排序數組,降序。我怎樣才能做到最好的方式?排序NSStrings包含日期
0
A
回答
1
如果我理解這個數組的結構,我希望這個答案有幫助! :)
我用這種方法來排序一個數組,其中包含一個數組,該數組持有一個數組,最終持有一個字符串,我想通過排序頂部數組。所以顯然一些簡單的不起作用。但我遇到了這一點:
- (void)sortUsingComparator:(NSComparator)cmptr;
在你的情況,我希望,這是你想要的使用:
NSMutableArray *arrayItems = [NSMutableArray arrayWithObjects:
@{@"date":[NSDate date]},
@{@"date":[NSDate dateWithTimeIntervalSinceNow: 60*60*45]},
@{@"date":[NSDate dateWithTimeIntervalSinceNow: 60*60*25]},
@{@"date":[NSDate date]},
@{@"date":[NSDate dateWithTimeIntervalSinceNow: 60*60*5]},
@{@"date":[NSDate dateWithTimeIntervalSinceNow: 60*60*32]},
@{@"date":[NSDate date]},
@{@"date":[NSDate dateWithTimeIntervalSinceNow: 60*60]},
nil];
[arrayItems sortUsingComparator:^NSComparisonResult(id obj1, id obj2) { //obj1 and obj2 are objects in the list of the array. so in your case a list of dictionaries, so obj1 and obj2 are dictionaries, mutable
//And now, which is why you would use this block to sort your objects, there you'll access each date, or object, you want to have the 'power' to sort the objects inside the caller, in this case arrayItems
NSDate *date1 = [obj1 objectForKey: @"date"];
NSDate *date2 = [obj2 objectForKey: @"date"];
//And now you compare the two of whom is larger
return [date1 compare: date2];
}];
NSLog(@"%@", arrayItems);
我希望這有助於,或者暗示你的答案:)
1
您可以創建一個NSSortDescriptor,例如:
NSSortDescriptor *sorter = [NSSortDescriptor sortDescriptorWithKey:@"date" ascending:YES];
[array sortUsingDescriptors:@[sorter]];
這將使用字符串比較來比較你的日期字符串。如果日期字符串格式正確且一致,它應該可以工作。
0
最好的方法是將該字符串格式化爲NSDate
對象並使用compare:
方法。
相關問題
- 1. 排序包含按日期
- 2. 數組排序包含在PHP日期
- 3. 無法通過包含日期排序
- 4. 無法排序包含日期
- 5. objective-c排序NSStrings的NSMutableSet?
- 6. sortUsingSelector不排序NSStrings陣列
- 7. PostgreSQL - 包含日期
- 8. 無法對包含日期時間的地圖進行排序
- 9. 如何排序ArrayList包含日期和字符串?
- 10. 如何包含在iPhone SDK的日期數組排序
- 11. 以String格式排序包含數組日期
- 12. 按照包含元素的日期排序組(LINQ)
- 13. 排序數組包含使用usort不工作的日期
- 14. 重新排列包含按時間順序日期列表
- 15. 排序包含字符串,日期和數字的數組
- 16. 日期排序
- 17. 排序日期
- 18. 排序日期
- 19. 排序日期
- 20. 排序日期
- 21. 分裂包含日期,日期的順序串
- 22. 如何按照包含的數字對NSStrings數組進行排序? (按升序排列)
- 23. fullCalendar - 包含結束日期
- 24. 包含日期和檢查
- 25. PHP包含基於日期
- 26. 查詢包含日期
- 27. 包含日期範圍
- 28. 表名稱包含日期
- 29. 日期排序ArrayList
- 30. 按日期排序
快速問題,陣列中的每個字典是否只有一個鍵值對?如果是這樣,是否有可能只使用單個字典和所有關鍵值對? –
@GavinHope不,它有大約10種不同的元素 – Edward
好的很酷,謝謝。 –