Ошибка времени выполнения с использованием Combine: dyld: символ не найден: _$s7Combine9PublishedV9PublisherCyx_GAadAMc

Я использую Xcode 11 Beta 5 (11M382q) и iphone x с iOS 13 beta 6, и у меня возникает ошибка во время выполнения при попытке использовать Combine:

dyld: символ не найден: _$s7Combine9PublishedV9PublisherCyx_GAadAMc

У меня есть базовый класс, который является ObservableObject

import SwiftUI
import Combine

open class Core: ObservableObject {
    @Published public var userId = ""

    public var isUserValid: AnyPublisher<Bool, Never> {
    return $userId.debounce(for: 0.5, scheduler: RunLoop.main).removeDuplicates().map { (user: String) in
      return user.isEmpty
    }.eraseToAnyPublisher()
  }
}

И простой вид

import SwiftUI
import Combine

struct LoginView: View {
    @EnvironmentObject var core: Core
    @State var isLoading: Bool = false
    @State var submitButtonEnabled: Bool = false

    var body: some View {
        VStack {
            VStack(alignment: .center) {
                Image("logo")
                    .frame(minWidth: Constants.logoWidth, minHeight: Constants.logoHeight, alignment: .center)
                    .padding(.top, Constants.logoTopPadding)
                    .animation(.default)
                    .scaledToFit()
             }
        }

        CircularButton(isLoading: $isLoading, image: Constants.submitButtonArrowImageName) {
            // Button Action
        }
        .padding(.top, Constants.submitButtonTopPadding)
        .disabled($submitButtonEnabled.value)
        .onReceive(self.core.isUserValid) { value in
          self.submitButtonEnabled = value
        }
    }
}

Что не так с моим кодом? Я просто хочу, чтобы архитектура MVVM, использующая реактивное программирование, отключала или включала кнопку.

1 ответ

Решение

Я скачал Xcode 11 beta 6, iOS 13 beta 7 и теперь работает нормально. Это была ошибка предыдущих бета-версий.

Другие вопросы по тегам