Проблема Xcode 11.4: контекст в среде не связан с постоянным координатором хранилища - PullRequest
1 голос
/ 28 марта 2020

Код работал в Xcode 11.3, но после обновления до 11.4 я теперь получаю две ошибки:

Контекст в среде не связан с постоянным координатором хранилища.

Поток 1: Неустранимая ошибка: Обнаруженный объект ObservableObject типа UpdateTagView не найден. View.environmentObject (_ :) для UpdateTagView может отсутствовать как предок этого представления.

Вот как я добавляю объекты в среду:

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {

        let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
        context.mergePolicy = NSMergeByPropertyStoreTrumpMergePolicy

        let em = EventManager()
        let tagger = UpdateTagView()

        let contentView = ContentView()
            .environment(\.managedObjectContext, context)
            .environmentObject(em)
            .environmentObject(tagger)

        if let windowScene = scene as? UIWindowScene {
            let window = UIWindow(windowScene: windowScene)
            window.rootViewController = UIHostingController(rootView: contentView)
            self.window = window
            window.makeKeyAndVisible()
        }
    }

I вызовите их внутри View с помощью @EnvironmentObject:

struct ViewName: View {

    @EnvironmentObject var em: EventManager
    @EnvironmentObject var tagger: UpdateTagView

Вот пример того, что находится в ObservableObject:

class UpdateTagView: ObservableObject {

    @Published var counter: Int = 0
    @Published var language: String = "English"

}

Cheers ~

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