NSPersistentContainer.loadPersistentStores(completionHandler:)
のcompletionHandlerは、デフォルトではloadPersistentStores
を抜ける前に同期的に呼ばれます。
理由
NSPersistentContainer.persistentStoreDescriptions[0].shouldAddStoreAsynchronously
がデフォルトでfalse
になっているのが理由です。
NSPersistentStoreCoordinator.addPersistentStore(with:completionHandler:)
も同様に、引数のstoreDescription.shouldAddStoreAsynchronously
がfalse
の場合、completionHandlerが同期的に呼ばれます。