Мы рассмотрим выполнение Задания 5 для курса «Developing iOS 9 Apps with Swift» на Swift 3 для iOS 10.
Почему это интересно?
Особенный интерес связан не столько со Swift 3, сколько с Core Data, который до выхода iOS 10 являлся одним из самых непонятных и сложных в использовании фреймворков, особенно в многопоточной среде. На WWDC 2016 Apple представила в iOS 10 одну из самых значительных модернизаций Core Data со времен iOS 5.
Возможности новой Core Data в iOS 10
Во главе нового Core Data стоит класс NSPersistenceContainer, представляющий собой прекрасный полноценный Core Data Stack, который очень просто создать и использовать. Класс NSPersistenceContainer снабжает вас очень простым API:
Как это видно из названия, управление «видимыми» объектами Core Data осуществляется View Controllers на main queue с использованием viewContext. Очень легко работать с объектами Core Data в фоновом (background) режиме c помощью контекста, возвращаемого методом newbackgroundContext(). Но еще лучше, проще и оптимальнее выполнять различные операции с Core Data в фоновом (background) режиме с помощью метода performBackgroundTask(_:), который сам предоставляет разработчикам NSManagedObjectContext для выполнения этих операций:
Такой простой public API существенно снизит порог вхождения в Core Data.