Правильно ли я использую Базовые данные, выбирая объект один раз при запуске и вызывая save, когда я хочу сохранить данные? - PullRequest
4 голосов
/ 12 ноября 2010

Я углубляюсь в программирование на iOS и использую Core Data в своем приложении для сохранения игровых данных, однако мне интересно, является ли мой подход неправильным способом использования Core Data.У меня есть три таблицы в моей БД, причем первые две имеют отношение один ко многим с другой таблицей (т.е. UserProfile - >> Puzzle Packs - >> Puzzles).

Подход, который я использую для сохранения и сохранения данных, прост: получить экземпляр UserProfile с помощью NSFetchedResultsController и сохранить объект UserProfile в качестве экземпляра var в моем делегате приложения.Затем я использую этот объект UserProfile в остальной части кода, чтобы получить доступ и изменить состояние пакетов и головоломок (представляющих прогресс пользователя в игре), и всякий раз, когда я делаю изменения в объектах, я просто вызываю метод save NSManagedObjectContext.обновить БД, которая также хранится в App Delegate.

Мой вопрос заключается в том, должен ли я получать данные из БД в любое время, когда мне нужно получить к ним доступ или изменить их, или это мой текущий подход к извлечениюверхний объект один раз и частый вызов метода save, правильный способ использования Core Data?

Заранее благодарим за вашу мудрость!Я прошу прощения, если мой вопрос странный, я все еще нуб.

1 Ответ

2 голосов
/ 12 ноября 2010

Поскольку вы когда-либо работаете с этими объектами только с одним NSManagedObjectContext (т. Е. Вам никогда не придется объединять изменения между контекстами), тогда я не вижу проблемы с выборкой один раз и сохранением при необходимости.

Тем не менее, в тот момент, когда вы работаете с несколькими контекстами (например, используя NSOperation / NSOperationQueue или другие методы многопоточности, которые требуют отдельных контекстов), вы захотите убедиться, что объединяете изменения и обновляете другие контексты, чтобы они менялись из одного потока не стучите что-то в другом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...