Проблемы с анализом и загрузкой xml-канала в табличное представление с использованием делегатов

Я очень новичок в программировании для iOS и Cocoa, поэтому, пожалуйста, успокойтесь, пока я пытаюсь обдумать следующее. Я пытаюсь отобразить табличное представление, заполненное из XML-канала, в качестве начального экрана моего приложения. Я попытался использовать XML внутри моего AppDelegate, используя метод ApplicationDidFinishLaunching (а затем сделав мой AppDelegate делегатом для синтаксического анализатора XML, к которому я обращаюсь с помощью NSUrlConnection и его методов делегата), но я не могу понять, как взять проанализированный XML-файл и передать его в tableviewcontroller, который затем может использовать его в качестве источника данных для tableview. Когда я пытаюсь, я всегда получаю пустое табличное представление.

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

Заранее спасибо!


person Matthew    schedule 29.03.2011    source источник


Ответы (2)


Хм, вероятно, плохая идея сделать сетевой вызов в AppDelegate. Попробуйте разместить весь этот код на уровне контроллера представления. Вот краткая структура того, что я делаю (поскольку это очень похоже)

  • View Controller слушает события кнопки
  • Используйте ASIHTTPRequest для связи с веб-службой. Работает с сетью очень хорошо, вы можете пропустить NSURLConnection материал.
  • Попробуйте загрузить источник данных (массив?) со статическими значениями и посмотрите, появятся ли они в представлении таблицы.
  • Проанализируйте ответ от ASIHTTPRequest с помощью NSXMLParser и загрузите нужные данные в статический массив, который вы использовали. Подробнее здесь.
  • Когда закончите, позвоните [tableView reloadData], и изменения вступят в силу.
person Tejaswi Yerukalapudi    schedule 29.03.2011
comment
Интересно .. Я думаю, что одна из моих проблем заключается в том, что у меня нет tableView, установленного в качестве свойства, поэтому я не смог вызвать для него reloadData. Все еще бездельничаю, потому что теперь я просто разбиваюсь всякий раз, когда бегу. - person Matthew; 30.03.2011
comment
Как оказалось, я показывал свой tableView до того, как все мои данные были загружены, а затем я не вызывал reloadData. Спасибо за указатель! - person Matthew; 30.03.2011

Вы указали UITableViewDataSource для своего табличного представления и реализовали ли два необходимых метода?

tableView:cellForRowAtIndexPath: и tableView:numberOfRowsInSection:

http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableViewDataSource_Protocol/Reference/Reference.html

Когда я получаю пустые таблицы, вот что это такое; я забыл указать источник данных

person Merky    schedule 29.03.2011