NSDictionary - Печать массива - PullRequest
       8

NSDictionary - Печать массива

2 голосов
/ 14 февраля 2010

Этот сайт отличный, я получаю много ответов, поэтому я пытался закодировать то, с чем у меня были проблемы, прежде чем вот это

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 

^^ Это порядок, который я хочу, кроме как по убыванию

Ответы [ 3 ]

3 голосов
/ 14 февраля 2010

[dic allValues] не возвращает ключи ни в каком надежном порядке. Он использует набор снизу, что означает, что он неупорядочен.

Если вы ищете словарь, который также поддерживает порядок вставки, проверьте CHOrderedDictionary, который является частью CHDataStructures Framework .

2 голосов
/ 14 февраля 2010

Как указано в документации , порядок значений не указан. Таким образом, вам нужно отсортировать ключи перед итерацией, используя один из методов сортировки NSArray .

Например, этот код будет сортировать строковые значения в порядке возрастания:

NSArray *sort = [[dic allValues] sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];

for(NSString *s in sort){
    [Purchases appendString:[NSString stringWithFormat:@"%@",s]]; 
} 
textview.text = Purchases; 

Обратитесь к документации NSArray , чтобы узнать о различных способах сортировки массива (селектор, блоки и т. Д.).

1 голос
/ 14 февраля 2010

Я бы хотел показать его в порядке убывания (сначала самое позднее время даты) ...

Тогда вам нужно отсортировать . Вы не можете рассчитывать на то, что словарь предоставит вам его содержимое в любом порядке, даже в том порядке, в котором вы его загрузили или вставили.

...