Как сортировать объекты, проанализированные из XML - PullRequest
2 голосов
/ 15 октября 2010

, поэтому я хочу проанализировать xml и отобразить (в UITableView) «предметы» в порядке возрастания в зависимости от «уроков»

XML:

<parfumeo_kkn>
<tt_timetable>
    <id>1015</id>
    <day>1</day>
    <class_id>98</class_id>
    <lesson>9</lesson>
    <teacher>bt</teacher>
    <room>V1.2</room>
    <subject>M</subject>
    <pr_id>54</pr_id>
</tt_timetable>
<tt_timetable>
    <id>1014</id>
    <day>1</day>
    <class_id>98</class_id>
    <lesson>8</lesson>
    <teacher>bt</teacher>
    <room>V1.2</room>
    <subject>bg</subject>
    <pr_id>54</pr_id>
</tt_timetable>

ЭСТ.

(В этом небольшом примере перед «М» будет «bg».) Я уже настроил свой парсер, но он не работает в том порядке, в котором я хочу. спасибо за помощь

Ответы [ 3 ]

2 голосов
/ 15 октября 2010

Вы должны разделить логику парсера и способ отображения результатов в табличных представлениях.Парсер просто выполняет свою задачу парсинга xml, контроллер для табличного представления выполнит немного дополнительную задачу, упорядочив результаты из парсера с помощью NSSortDescriptor, например:

    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"lesson" ascending:YES];
    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];

    [fetchRequest setSortDescriptors:sortDescriptors];

Да,Ранее я предполагал, что вы используете Core Data, если у вас просто обычный массив, тогда вы можете просто позвонить:

    NSArray *myArray = [xmlResultArray sortedArrayUsingDescriptors:sortDescriptors];

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

Надеюсь, это поможет!

0 голосов
/ 15 октября 2010

Чтобы отсортировать массив, вы просто делаете это.

NSArray *sortedPairs = [originalArray sortedArrayUsingSelector:@selector(compare:)];

Если у вас есть словарь и вы хотите получить отсортированный массив по ключам, вы бы

NSArray *arr = [dictionary keysSortedByValueUsingSelector:@selector(compare:)];

получилисвой массив вы можете перечислить как пожелаете.

0 голосов
/ 15 октября 2010

Может быть, вы можете проанализировать ваш XML-файл, поместить объекты в массив и затем отсортировать этот массив?

NSArray *myArray = [parser parseTheFile:file];
[self sortTheArray:myArray];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...