当我放置此功能时,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()
}
}
感谢帮助
答案 0 :(得分:0)
这与画布无关...到处崩溃。 调试器是您的朋友,它说:
2020-03-30 18:51:19.909408 + 0200 crashcanvas [22116:930944]致命错误:索引超出范围:文件/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang -1103.2.25.8 / swift / stdlib / public / core / ContiguousArrayBuffer.swift,第444行 (lldb)po misIniciales element 1个元素 -0:“未知用户”
->原因:如果用户什么都没有,数组misIniciales将只有一项,但是您假设在这里
.as-console-row {color: blue!important}
通过访问misIniciales [1]总是有两个项目