У меня странный сбой в SwiftUI / Xcode 11 beta 3 с кодом, подобным приведенному ниже (я оставил только минимальный минимум, чтобы показать поведение):
import SwiftUI
import Combine
final class AppData: BindableObject {
let didChange = PassthroughSubject<AppData, Never>()
init() { }
}
struct ContentView : View {
var body: some View {
NavigationView {
NavigationLink(destination: DetailView() ) {
Text("link")
}
}
}
}
struct DetailView : View {
@EnvironmentObject var appData: AppData
// @ObjectBinding var appData = AppData() -> Works
var body: some View {
List {
Text("A")
Text("B")
Text("C")
}
}
}
BindableObject
вводится в SceneDelegate.swift
следующим образом:
....
// Use a UIHostingController as window root view controller
if let windowScene = scene as? UIWindowScene {
let window = UIWindow(windowScene: windowScene)
window.rootViewController = UIHostingController(rootView: ContentView()
.environmentObject(AppData()))
self.window = window
window.makeKeyAndVisible()
}
....
При следовании NavigationLink
происходит сбой с
Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
ЕслиЯ удаляю List
вид из подробного вида, он работает нормально.То же самое, если я вместо этого использую @ObjectBinding
(как в строке комментария в моем коде).
Тот же код, который использовался в предыдущих бета-версиях.