Я пытаюсь написать приложение Core Data для iPhone, использующего внешний источник данных. Я не использую Core Data для сохранения своих объектов, а скорее для управления жизненным циклом объекта. У меня есть довольно хорошая идея о том, как использовать базовые данные для локальных данных, но столкнулись с несколькими проблемами с удаленными данными. Я просто использую API Flickr в качестве примера.Шаблоны для доступа к удаленным данным с базовыми данными?
Первое, что мне нужно сказать, список последних фотографий, мне нужно захватить их из внешнего источника данных. После того, как я получил список, кажется, что я должен повторять и создавать управляемые объекты для каждой фотографии. На этом этапе я могу продолжить свой код и использовать стандартный Core Data API для настройки запроса на выборку и получения подмножества фотографий, например, для собак.
Но что делать, если я хочу продолжить и получить список фотографий пользователя? Поскольку существует вероятность того, что эти два набора данных могут пересекаться, мне нужно выполнить запрос выборки по существующим данным, обновить то, что уже есть, а затем вставить новые объекты?
-
В старой модели, я бы просто отдельные структуры данных для каждого из этих наборов данных и доступ к ним соответствующим образом. Набор последних фотографий и набор usersPhotos. Но поскольку общая модель Core Data, по-видимому, использует один контекст управляемого объекта, кажется (я могу ошибаться), что мне нужно объединить мои данные с основным пулом данных. Но это похоже на множество накладных расходов, чтобы захватить список фотографий. Должен ли я создать отдельный контекст управляемого объекта для другого набора? Следует ли использовать Core Data здесь?
Я думаю, что то, что я считаю привлекательным для Core Data, это то, что раньше (для веб-службы) я делал запрос на определенные данные и либо отфильтровывал его в запросе, либо отфильтровал его в коде и создавал список, который я бы использовал , С Core Data я могу просто получить список объектов, добавить их в свой пул (при необходимости обновить старые объекты), а затем запросить его. Одна из проблем, я вижу с этим подходом, однако, заключается в том, что если объекты удалены извне, я не могу знать, так как сохраняю свои старые данные.
Как я отступаю от базы здесь? Существуют ли какие-либо шаблоны для работы с удаленными данными и основными данными? :) Я нашел несколько сообщений людей, которые говорили, что они это сделали, и что это работает для них, но мало для примера. Благодарю.
Можете ли вы уточнить, что вы хотите? «использует внешний источник данных» очень расплывчато. Похоже, вы хотите локально отобразить часть внешней базы данных. Вам нужно внести местные изменения, которые будут переданы обратно? Как насчет конфликтов? Это сложная проблема, и более подробная информация поможет предложить направления. –
, возможно, затхлый поток, у меня возникнет соблазн попытаться найти что-то в фоновом потоке и записать их в постоянный магазин и получить от них уведомления до основного потока - не уверен, что это сработает, но было бы неплохо если бы это было – bshirley