使用 Combine 时出现运行时错误:dyld:未找到符号:_$s7Combine9PublishedV9PublisherCyx_GAadAMc
Runtime error using Combine: dyld: Symbol not found: _$s7Combine9PublishedV9PublisherCyx_GAadAMc
我正在使用 Xcode 11 Beta 5 (11M382q),以及 iphone x 和 iOS 13 beta 6,我在尝试使用 Combine 时遇到此运行时错误:
dyld: Symbol not found: _$s7Combine9PublishedV9PublisherCyx_GAadAMc
我有一个 class 核心 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 架构。
我下载了 Xcode 11 beta 6、iOS 13 beta 7,现在运行良好。这是以前测试版的错误。
我正在使用 Xcode 11 Beta 5 (11M382q),以及 iphone x 和 iOS 13 beta 6,我在尝试使用 Combine 时遇到此运行时错误:
dyld: Symbol not found: _$s7Combine9PublishedV9PublisherCyx_GAadAMc
我有一个 class 核心 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 架构。
我下载了 Xcode 11 beta 6、iOS 13 beta 7,现在运行良好。这是以前测试版的错误。