Не сохраняются все объекты Core Data

Я разрабатываю приложение для iPhone, которое загружает данные из Интернета и создает объекты из этих данных. Возможно создание однотипных объектов на устройстве. Объекты из Интернета не должны сохраняться в базе данных Core Data, но объекты, созданные на устройстве, должны.

Когда я сохраняю, я использую этот стандартный вызов:

     NSError *error;
 if (![context save:&error])
  NSLog(@"Error %@", [error localizedDescription]);

Кто-нибудь знает как это сделать?


person Peter    schedule 18.06.2010    source источник
comment
Как строятся ваши Core Data Entities? Отражают ли они объекты из сети?   -  person RickiG    schedule 18.06.2010
comment
В качестве примера у меня есть объект Route. Вы можете создавать свои собственные маршруты на устройстве, но вы также можете загружать маршруты из Интернета. В обоих случаях я вставляю новую сущность в свой контекст. Должен ли я иметь для этого два контекста?   -  person Peter    schedule 18.06.2010


Ответы (2)


Вначале я скажу, что не работал с основными данными так долго, так что отнеситесь к этому с недоверием ...

... вам нужно работать с несколькими веб-маршрутами одновременно? Если это только один за раз, возможно, сохраните его в основных данных как «последний загруженный маршрут». Когда вы загружаете новый, загрузите этот «последний загруженный» объект и перезапишите его данные новым маршрутом. Таким образом, вы сохраните только самый последний.

Если вы настроены не сохранять ЛЮБОЙ из веб-маршрутов, я бы даже не стал включать их в ваш основной контекст данных. Просто загрузите их и работайте с данными прямо в приложении - я могу быть сбит с толку тем, как здесь работает ваше приложение, но если вы не хотите сохранять веб-маршруты в магазине, зачем вы добавляете их в контекст?

Единственное, что я могу придумать, - это либо иметь отдельные контексты, иначе вам придется вернуться и удалить загруженные из Интернета объекты после сохранения, что было бы беспорядком.

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

person Jim    schedule 18.06.2010

Я бы создал постоянное хранилище в памяти и назначил "временные" загруженные через Интернет экземпляры этому хранилищу. Экземпляры, которые вы хотите сохранить, должны быть назначены в постоянное хранилище на диске.

person Barry Wark    schedule 18.06.2010