2013-09-14 4 views
0

Я пишу приложение, которое нуждается в сохранении данных. Я использую CoreData в качестве своей основы для этого. В настоящее время я пытаюсь создать свои структуры данных для приложения, из которых я планирую иметь 2.IOS ManagedObjectContext Placement

Основные данные в моем приложении - это лист различной информации, который вводится в формате мастера. Я хочу использовать MutableArray для хранения данных формы.

Во-вторых, я хочу, чтобы в любой момент был доступен отдельный экземпляр (singleton) MyClass, который я буду использовать в качестве временного заполнителя для приема данных, вводимых во время работы мастера. Как только пользователь выполнит все этапы, он создаст для него новый объект в массиве.

Что я понимаю из CoreData, так это то, что мне нужно использовать ManagedObjectContext в качестве моста между моим приложением и диском на устройстве iOS. Мой вопрос:

«Должен ли я использовать один экземпляр этого контекста в делетете приложения и просто ссылаться на него из любого представления, которому нужно поговорить с файлами, или я создаю новый контекст на каждом ViewController».

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

+0

«Конечно, яблоко хочет делать что-то по-другому для всех». Хороший способ отбросить таких людей, как я, которые в противном случае хотели бы помочь вам. – Abizern

+0

Я не вижу проблемы, я просто заявил, почему у меня возникают трудности. Мое обучение - в устаревшем C++, а не в Objective. Я могу удалить комментарий, если вы пожелаете? –

+0

То, что было замечено, не может быть невидимым. Во всяком случае, Контекст управляемого объекта не является мостом, это блокнот, в котором перед сохранением сохраняются изменения объектов в вашем постоянном хранилище. Что касается новых или разных контекстов для каждого контроллера, это зависит от того, используете ли вы многопоточные базовые данные. Трудно констатировать это, поскольку оно стоит. – Abizern

ответ

-1

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

Я рекомендую использовать UIManagedDocument для настройки контекста управляемого объекта. Это немного больше работы в начале, но, к примеру, вы могли бы более легко реализовать доступ к iCloud.

Но вы также можете просто удерживать управляемый документ (без управляемого документа) в своем одиночном режиме или, как и в каждом предназначенном приложении с основными данными, в делетете приложения (к которому вы можете получить доступ через общий экземпляр uiapplication из любого места). На самом деле, по-моему, нет ни одного правильного пути. Вы можете посмотреть лекции Стэнфорда c193p (доступны в iTunes) и посмотреть основные сеансы данных, чтобы узнать подход managedDocument.

Смежные вопросы