Как вернуть количество строк для таблицы из NSXMLParserdelegate методов? - PullRequest
0 голосов
/ 05 сентября 2011

В настоящее время я использую оболочку ASIHTTPRequest для подключения к моей базе данных через php-скрипт, в основном он запрашивает базу данных, затем возвращает набор результатов в формате xml.

оттуда я создаю свой метод синтаксического анализатора, который inturnпередает всю запрашиваемую информацию в методы NSXMLParserDelegate

//..
parser:didStartElement:namespaceURI:qualifiedName:attributes:
//..
parser:foundCharacters:
//..
parser:didEndElement:namespaceURI:qualifiedName:
//..

Данные в первую очередь передаются через переменную NSMutableData, когда исходный поток данных выходит из строя.

У меня тогда есть утверждение ifв моем анализаторе: didStartElement: namespaceURI: qualName: attribute: это передает все данные в строку на основе условия

if ([elementName isEqual:@"item"]) {
        // NSLog(@"Found title!");
        itemString = [[NSMutableString alloc] init];
    }

отсюда мне интересно, как я устанавливаю счетчик строк в табличном представлении внутриметод numberOfSectionsInTableView?на какую переменную я бы рассчитывал или мне нужно было бы создать что-то еще?

Ответы [ 2 ]

1 голос
/ 05 сентября 2011

В образце исходного кода Apple есть отличный учебник для разбора XML Это называется SeismicXML

http://developer.apple.com/library/ios/#samplecode/SeismicXML/Listings/Classes_RootViewController_m.html#//apple_ref/doc/uid/DTS40007323-Classes_RootViewController_m-DontLinkElementID_8

в вашем вопросе у вас есть ошибка: numberOfSectionsInTableView не возвращает счетчик строк - он возвращает счетчик разделов В большинстве случаев, если у вас обычный просмотр таблицы, он должен вернуть 1.

и этот код возвращает количество строк в этом разделе

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return [YOUR_ARRAY count];
}
0 голосов
/ 05 сентября 2011

Если я не ошибаюсь, вам поможет следующий вопрос.

1 Надеюсь, вы уже сохраняете все значения элементов в некотором массиве в методе elementDidEnd.

2 Напишите некоторый код, подобный следующему.
if([parser parse]){ [tableView reloadData]; }

После перезагрузки таблица будет перезагружена.

3 Возвращает счетчик массива, в котором вы сохранили все значения элементов, и заполняет таблицу этим массивом.

Пожалуйста, напишите, если вам нужна дополнительная помощь.

...