парсинг xml в UITableViewCell после получения ответа от сервера - PullRequest
0 голосов
/ 20 мая 2011

Привет, друг, я хочу спросить кое-что, как я могу вернуть Conn.xmlParser потому что connectionDidFinishLoading является недействительным, и мне нужен этот результат для анализа порядка в UITableView, как я могу использовать значение Conn.mlParser?

Пожалуйста, нужна помощь.

 -(void)connectionDidFinishLoading:(NSURLConnection *)connection
    {
        NSLog(@"DONE. Received Bytes: %d", [Conn.webData length]);
        ta=Conn.webData;
        if( Conn.xmlParser )
        {
            [Conn.xmlParser release];
        }

        Conn.xmlParser = [[NSXMLParser alloc] initWithData: Conn.webData];

        [Conn.xmlParser setDelegate: self];

        [Conn.xmlParser setShouldResolveExternalEntities: YES];
        [Conn.xmlParser parse];

        [connection release];
        [Conn.webData release];
    }

1 Ответ

2 голосов
/ 21 мая 2011

Убедитесь, что ваш делегат также реализует протокол NSXMLParserDelegate.Затем вы можете вызвать didStartElement, didEndElement, didEndDocument и т.д.Также используйте этот массив в качестве источника данных в cellForRowAtIndexPath UITableView.

Когда вы достигнете didEndDocument, просто вызовите [myUITableView reload], чтобы обновить представление таблицы.(Если только просмотр таблицы и делегат соединения не принадлежат двум разным классам, вам следует использовать KVO, чтобы сообщить столовому делегату, что данные были получены).

СЛЕДУЙТЕ ЗА:

ВместоВы пример (которого уже есть несколько в сети), который просто оставит вам больше вопросов, я попытаюсь объяснить, что вы должны понимать, если собираетесь стать успешным разработчиком iOS.

И если приведенные ниже шаги кажутся вам слишком пугающими, я предлагаю вам сделать шаг назад и попытаться решить проблему медленно, по одной части за раз.Если вы все еще не добились прогресса, купите копию «Начала разработки для iPhone 4» Марка, Наттинга и Ламарша, а затем вернитесь к этому, когда вы лучше поймете основной процесс программирования Objective-C и iPhone.

Чтобы достичь своей цели:

Сначала вы должны спросить себя, чего вы пытаетесь достичь.

Вы получаете данные с веб-сайта (возможно, веб-сервис?) И хотите декодировать (анализировать) эту информацию и отображать ее в виде таблицы.Правильно?

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

  1. Создать отдельнуюКласс смоделирован по типу данных, которые вы собираетесь получать с вашего сайта.Если вы получаете объекты автомобилей, в которых указываются цвет, год, модель, вам следует создать класс автомобилей со свойствами цвета, года и модели.

  2. Получить данные с веб-сайта.Похоже, у вас есть идея, как это сделать, поскольку вы уже захватываете событие подключения в коде, который вы показали выше.Однако понимаете ли вы, что происходит в ConnectionDidFinishLoading?

  3. Разбор данных, возвращаемых с веб-сайта.Это требует использования синтаксического анализатора XML, опять же вы, кажется, по крайней мере знаете, что вам нужно что-то здесь сделать для анализа данных.Также требуется место для хранения данных, которые возвращаются с сайта.Массив объектов того типа, который вы создали на шаге 1, будет вашей областью хранения возвращенных и проанализированных данных.Наконец, требуется, чтобы вы понимали специфику данных, которые передаются вам с веб-сайта, чтобы вы понимали, как анализировать данные и правильно их хранить (и что они действительно в формате XML, иначе анализ XML здесь не будет работать).

  4. Отображение проанализированных данных в вашем UITableView.Это требует от вас понимания того, как отображать данные в виде таблицы и как установить источник данных для просмотра таблицы.

Во-вторых, вы должны искать пример кода, который вы можете изучить и который делает то, что вы делаете.пытаясь выполнить и прочитать документацию Apple, чтобы получить четкое представление о том, что должно произойти для достижения желаемого результата.Посмотрите на каждую часть вашей задачи и там, где есть что-то непонятное, изучите эту конкретную проблему.Как я могу использовать NSXMLParser?Как мне отобразить данные в UITableView из массива?и т. д.

Если вы не потратите время на то, чтобы по-настоящему понять, как решить эту проблему, а не просто скопируете код, то завтра вы вернетесь с другой проблемой.

Надеюсь, этопоможет вам решить эту проблему и поможет понять, как решать будущие проблемы.

И для начала я дам вам ссылку, которая более или менее ответит на ваш вопрос.

Учебник для iPhone Создание RSS-канала Reader

...