У меня есть NSMutableArray из NSMutableDictionary (объекты NSString). Один из объектов NSString на самом деле является датой, и мне нужно отсортировать NSMutableArray на основе этой даты, и я не хочу, чтобы он сортировал даты как строки. Как я могу это сделать?Как отсортировать NSMutableArray из NSMutableDictionary?
ответ
Если я правильно понял, ваш массив содержит словари, содержащие строки, и вы хотите сортировать по этим строкам ... как даты. Возможно, что-то вроде этого:
[someArray sortWithOptions: 0 usingComparator: ^(id inObj1, id inObj2) {
NSDate *date1 = [NSDate dateWithString: [inObj1 objectForKey: @"dateString"]];
NSDate *date2 = [NSDate dateWithString: [inObj2 objectForKey: @"dateString"]];
return [date1 compare: date2];
}];
Ну, NSMutableArray не имеет такого метода, как «sortWithOptions». – Walkor
Он был введен в 10.6 http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSMutableArray_Class/Reference/Reference.html#jumpTo_31 –
Вам необходимо будет использовать метод sortedArrayUsingFunction:context:. Например:
NSInteger comparator(NSDictionary *d1, NSDictionary *d2, void *context)
{
return [[d1 objectForKey:@"date"] compare:[d2 objectForKey:@"date"]];
}
// In some method:
NSArray *sortedArray = [array sortedArrayUsingFunction:comparator context:nil];
Примечание: Это не тестировалась.
Спасибо за ответ, я попробую. – Walkor
- 1. Создание NSMUtableDictionary из NSMutableArray
- 2. Как создать NSMutableDictionary из NSMutableArray?
- 3. NSMutableArray доступ к NSMutableDictionary
- 4. NSMutableDictionary + NSMutableArray аварии
- 5. Как создать NSMutableArray с помощью NSPredicate из NSMutableArray/NSMutableDictionary
- 6. NSMutableDictionary VS NSMutableArray speed
- 7. NSMutableDictionary * dict = [NSMutableArray array]
- 8. Добавление NSMutableDictionary к NSMutableArray
- 9. добавляя NSMutableDictionary к NSMutableArray
- 10. Добавление NSMutableDictionary с NSMutableDictionary в NSMutableArray?
- 11. добавление NSMutableArray к NSMutableDictionary
- 12. Отсортировать NSMutableArray
- 13. Как отсортировать этот NSMutableArray?
- 14. Добавление объектов из NSMutableDictionary в NSMutableArray
- 15. как отсортировать NSMutableArray с MutableDictionary в нем?
- 16. NSMutableDictionary, содержащий NSMutableArray, возвращает строку
- 17. ObjectiveC NSMutableArray добавить NSMutableDictionary выпуск
- 18. NSMutableDictionary <NSString *, NSMutableArray *>
- 19. NSmutablearray как хранить в NSmutableDictionary объектив c
- 20. Вставить объект NSMutableArray в NSMutableDictionary
- 21. NSMutableArray с NSDictionary к NSMutableDictionary
- 22. Поиск индекса NSMutableDictionary внутри NSMutableArray
- 23. NSMutableArray и NSMutableDictionary в TableView
- 24. Objective C - Как хранить NSMutableArray внутри NSMutableDictionary
- 25. NSXMLParser как передать NSMutableDictionary в NSMutableArray
- 26. Как бы использовать NSMutableArray с NSMutableDictionary
- 27. Как проверить, если NSMutableArray Содержит NSMutableDictionary
- 28. Как добавить данные Nsmutabledictionary в Nsmutablearray.?
- 29. Как отсортировать массив хранилища NSMutableDictionary в NSUserDefault?
- 30. Как отсортировать «ключ» и «значение» в NSMutableDictionary от NSDate?
Я также рассмотрю создание классов для вашей модели данных, поскольку вы можете реализовать простой метод сравнения с объектами NSDate. Использование изменяемых словарей, подобных этому, часто может сбивать с толку, как только вы передадите определенный момент. –