Использование контекста управляемого объекта в фоновом режиме и основной теме

У меня есть функция, вызываемая нажатием кнопки. Кроме того, из этого метода вызывается метод [self getData] , который обновляет значения в db с использованием основных данных.

Кроме того, у меня есть фоновый поток, который выполняется каждую минуту. Я использовал отдельный контекст управляемых объектов и уведомления об управляемых объектах в потоках фона. Но я не уверен, использовать ли новый экземпляр управляемого объекта или [self managedObjectContext] в [self getData] , поскольку этот метод вызывается в основном потоке и у меня есть использовать уведомления об управляемых объектах для этого?

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

1
nl ja de

1 ответы

Вы можете создать временный контекст, используя тип параллелизма частного очереди, который является дочерним объектом основного контекста управляемого объекта:

NSManagedObjectContext *temporaryContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
temporaryContext.parentContext = [self managedObjectContext];
[temporaryContext performBlock:^{
  //...
}]

I found this tutorial very helpful when I was working how to do this: http://www.cocoanetics.com/2012/07/multi-context-coredata/

2
добавлено
спасибо за ваш ответ, я проверяю его
добавлено автор Jaspreet Singh, источник
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

iOS Developers — русскоговорящее сообщество
iOS Developers — русскоговорящее сообщество
2 400 участник(ов)

Общаемся на темы, посвященным iOS-разработке, Swift, Objective-C, SDK, Rx, Cocoa и т.д.