Обновление TableView с помощью WebService и сохранение в CoreData - PullRequest
0 голосов
/ 18 мая 2010

Я работаю над проектом, в котором у меня есть табличное представление, которое в настоящее время обновляется через веб-запрос, который возвращает XML. Я реализовал

-(int)numberOfRowsInTableView:(NSTableView*)tv

и

 -(id)tableView:(NSTableView *)tv objectValueForTableColumn:(NSTableColumn*)tableColumn row:(int)row

в моем классе синтаксического анализа XML, и обновите таблицу с помощью данных, извлекаемых с сервера.

Я хочу сохранить данные, которые извлекаются с помощью Core Data, чтобы таблицу можно было сохранить / загрузить. Затем при запуске веб-запроса приложение запускает только те данные, которых еще нет. (XML отсортирован по дате выпуска, поэтому позже я проверю, какие даты выпуска не загружены из основного хранилища данных, и загружу только новые записи.)

Как я мог бы реализовать это? Я - очень новый разработчик Какао, но прошел всю книгу Hillegass. Большое спасибо.

Ответы [ 2 ]

2 голосов
/ 18 мая 2010

Здесь есть две большие части: разбор XML и сохранение с Core Data.

(1) У меня был некоторый успех при использовании этой оболочки вокруг NSXMLParser для чтения XML-файлов. Я слышал о новых библиотеках, но не использовал их, но это может послужить отправной точкой для вас. Связанная статья довольно подробна об использовании.

(2) Первое, что вы захотите сделать с Core Data, - это создать новую модель данных. Оттуда вы можете создать класс модели (со свойствами @dynamic), чтобы легко взаимодействовать с вашей базой данных через Core Data (используя такие вещи, как NSManagedObjectContext и тому подобное). Вы можете получить мягкое введение здесь или прыгнуть чуть дальше вдоль здесь .

Реализация базовых данных нетривиальна, особенно для начинающих разработчиков. Я бы посоветовал вам искать учебники по конкретным темам по мере их возникновения.

1 голос
/ 18 мая 2010

Я сейчас в той же лодке, что и вы - я только учусь какао, я прочитал книгу Hillegass и создаю приложение Core Data, которое использует веб-сервис. Я выяснил, как добиться того, чтобы мое приложение успешно заполняло табличное представление из веб-службы, но я понятия не имею, является ли способ, которым я работаю, правильным или передовым опытом. Вот что я сделал:

Я создал модель базовых данных с теми же атрибутами, что и сущность, поступающая из веб-службы. В Интерфейсном Разработчике я создал табличное представление и установил привязки между столбцами таблицы и атрибутами Базовых данных. Когда приложение запускается, я извлекаю данные из веб-службы, перебираю элементы и создаю новые объекты. Затем табличное представление автоматически распознает новые данные и заполняет себя.

Книга основных данных от Pragmatic Programmers , а также этот вопрос помогли мне: JSON в постоянное хранилище данных (CoreData и т. Д.)

Я не решал проблему синхронизации (добавление новых элементов, обновление существующих), но у меня есть этот документ, на который добавляется закладка, когда я это делаю: http://developer.apple.com/Mac/library/documentation/Cocoa/Conceptual/CoreData/Articles/cdImporting.html#//apple_ref/doc/uid/TP40003174

...