Я использую performBlock
на моем NSManagedObjectContexts
, так что мои изменения происходят в правой очереди для данного контекста. Мой вопрос: если я делаю много изменений и методов вызова из performBlock
- есть ли простой способ гарантировать, что я использую объекты из соответствующего контекста.Основные данные - общий код, вызываемый из NSManagedObjectContext peformBlock:
Пример:
У меня есть activeAccount
Ивар (созданный на главной очереди), который является NSMangedObject
для текущей учетной записи в приложении. У меня есть некоторые методы экземпляра, которые используют объект activeAccount
для выполнения определенных задач - получения данных, установки данных. Поэтому мой вопрос заключается в том, что я делаю что-то на фоне NSManagedObjectContext
, и я вызываю один из этих общих методов - есть ли шаблон, который я могу использовать, чтобы в этих методах я знал использовать либо текущий activeAccount
iVar, либо получить новый. Кроме того, если мне нужно сделать что-то, что требует NSManagedObjectContext
- как узнать, какой из них можно получить/использовать.
Один метод, который я знаю, для использования которого есть NSManagedObjectContext
. У меня есть метод, который проверяет, работает ли он в текущем потоке, - тогда он знает, чтобы вернуть контекст основного потока или контекст фонового потока. Кроме того, если я нахожусь в фоновом потоке, могу ли я прочитать идентификатор объекта activeAccount
, который живет в основном потоке, чтобы я мог получить его копию в фоновом потоке? Заранее спасибо.
Я разрабатываю для iOS. У меня действительно есть только два MOC, один для основного потока и один для работы в фоновом режиме. Я думаю, моя проблема в том, что у меня есть код, который я пытаюсь повторно использовать, поэтому я применил методы. Но я не хотел говорить, что метод X может быть запущен только в этом ManagedObjectContext. В одном случае я создаю новое отношение к учетной записи. Объект, который содержит это, имеет учетную запись iVar. Поэтому я пытаюсь решить, могу ли я присоединиться к iVar или мне нужно создать другой объект учетной записи для фонового MOC. Возможно, мне нужно ограничить каждый метод данным MOC. – Brian