Crash Canvas SwiftUI in .onAppear



当我放这个函数时,swiftUI中画布的预览被破坏了。我不明白问题出在哪里,如果我评论它,它会完美工作,但如果我不评论它,就会崩溃。我有点绝望,因为当画布断裂时,我发现很难编程。我的代码是:

struct DashboardView: View {
@State var user : String = "aa.aas"
@State var iniciales : String = "AA"
@State var fichado : Bool = false
private func cargaDatos(){
let defaults    = UserDefaults.standard
self.user = defaults.string(forKey: "user") ?? "Unknown user"
let misIniciales = self.user.components(separatedBy: ".")
self.iniciales = String(misIniciales[0].prefix(1) + misIniciales[1].prefix(1))

}
var body: some View {
VStack {
...
}.onAppear{
DispatchQueue.main.async {
self.cargaDatos()
}
}
}
}
struct DashboardView_Previews: PreviewProvider {
static var previews: some View {
DashboardView()
}
}

感谢的帮助

这与画布无关。。。它到处都会崩溃。调试器是你的朋友,它说:

2020-03-30 18:51:19.909408+0200 crashcanvas[22116:930944]致命错误:索引超出范围:file/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-1103.2.25.8/swift/stdlib/public/core/ContiquentArrayBuffer.swift,第444行(lldb(非官方▿1个元素-0:"未知用户">

->原因:如果用户中没有任何内容,数组misInuales将有一个项目,但您在这里假设

self.iniciales = String(misIniciales[0].prefix(1) + misIniciales[1].prefix(1))

通过访问非官方[1]总是有两个项目

最新更新