我在下面的代码中遗漏了什么吗?
此应用程序在 iOS 15 设备上构建(macOS Monterey b5 / Xcode 13 b5)并完美执行 - 但在 iOS 14.7 设备上导致 SIGABRT...
import SwiftUI
struct ContentView: View {
@State private var text = "This app causes a runtime error on ios 14.7"
@available(iOS 15.0, *)
@FocusState var isInputActive: Bool
var body: some View {
if #available(iOS 15.0, *) {
TextEditor(text: $text)
.focused($isInputActive)
} else { // ios14 or <
TextEditor(text: $text)
}
}
}
Run Code Online (Sandbox Code Playgroud) 我在 iOS 14 上使用 SwiftlySearch,在 iOS 15 上使用 .searchable。
struct CompatibleSearchBarModifier: ViewModifier {
@Binding var text: String
@ViewBuilder
func body(content: Content) -> some View {
if #available(iOS 15.0, *) {
content.searchable(text: self.$text, prompt: "Placeholder")
} else {
content.navigationBarSearch(self.$text, placeholder: "Placeholder", hidesSearchBarWhenScrolling: true, cancelClicked: {text = ""})
}
}
}
Run Code Online (Sandbox Code Playgroud)
该应用程序在基于 Crashlytics 的 iOS 14.7.1-14.8 设备上崩溃。不幸的是,我无法在 Xcode 13.2.1 上重现该问题,因为我无法在模拟器上使用这些 iOS 版本(我尝试了这个库但没有成功: https: //github.com/JinjunHan/iOSDeviceSupport)。有什么想法在这种情况下我可以做什么吗?
Crashed: com.apple.main-thread
0 libswiftCore.dylib 0x313dbc swift::ResolveAsSymbolicReference::operator()(swift::Demangle::__runtime::SymbolicReferenceKind, swift::Demangle::__runtime::Directness, int, void const*)
1 libswiftCore.dylib 0x33170c swift::Demangle::__runtime::Demangler::demangleSymbolicReference(unsigned char)
2 libswiftCore.dylib …Run Code Online (Sandbox Code Playgroud)