0

我正在使用 Xcode 11 Beta 5 (11M382q),以及带有 iOS 13 beta 6 的 iphone x,并且在尝试使用 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 架构。

4

1 回答 1

0

我下载了 Xcode 11 beta 6、iOS 13 beta 7,现在运行良好。这是以前测试版的一个错误。

于 2019-08-21T19:20:33.043 回答