Обработка аннотаций из XML-ленты - PullRequest
0 голосов
/ 21 июля 2011

Hee all,

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

<locations>
    <location>
        <title>Supercoop</title>
        <category>supermarkt</category>
        <adres>Something</adres>
        <latitude>52.8982342</latitude>
        <longitude>5.2449449</longitude>
    </location>

    <location>
        <title>Thuis</title>
        <category>home</category>
        <adres>Something</adres>
        <latitude>52.223482</latitude>
        <longitude>5.248282</longitude>
    </location>
</locations>

"В данном примере нет реальных данных"

Я использую TouchXML для синтаксического анализа, и это прекрасно работает.

Мой вопрос таков: каков предпочтительный способ обработки этой информации в MKAnnotation.

Я думал о создании объекта,например: MyLocation и сохранить его там, но мне нужно пройти через множество объектов MyLocation.

Во-вторых, я хочу, чтобы объект / аннотация были доступны, когда я использую метод "calloutAccessoryControlTapped", чтобы я мог получить доступ к дополнительной информациичем хранится в аннотации, когда речь идет, например, о подробном просмотре.

Я надеюсь и думаю, что вы, ребята, можете мне помочь!Спасибо!

Рольф

1 Ответ

0 голосов
/ 21 июля 2011

Не уверен, что вы подразумеваете под «должны проходить через множество объектов MyLocation», но так или иначе, вам нужно создать объект, соответствующий протоколу MKAnnotation, и добавить его на карту.

Вы можете либо сразу вызвать addAnnotation при разборе каждого местоположения, либо, что еще лучше, добавить аннотации к массиву NSMutableArray, а затем вызвать addAnnotations, чтобы добавить их на карту за один снимок.

Если вы не хотите создавать свой собственный класс и используете iOS 4+, вы можете использовать предопределенный класс MKPointAnnotation.Это дает вам свойства title, subtitle и координировать, так что вам придется каким-то образом сжимать ваши заголовок, категорию и адреса.

Нетрудно создать собственный класс, который реализует MKAnnotation, и добавить свой пользовательский.свойства.Это лучше, чем пытаться втиснуть ваши свойства в MKPointAnnotation.Однако не используйте пример, представленный в примере приложения MapCallouts (это означает, что вам нужно создать отдельный класс для каждой уникальной координаты).Вместо этого создайте настраиваемое свойство координат.

В методе calloutAccessoryControlTapped объект аннотации доступен с использованием view.annotation, а затем вы можете привести его к своему пользовательскому классу и легко получить доступ к свойствам.

Для некоторого примера кода попробуйтеэти другие ответы:

...