【发布时间】:2020-09-03 12:44:51
【问题描述】:
我尝试做一些简单的事情。在 AppDelegate 中,我需要 var vertices: [SCNVector3] = []。在@IBAction func getVertices(_ sender: Any) 中,我可以读取文件并将新值分配给vertices。简单而有效。但是当我尝试将值传递给 SwiftUI View 时,我遇到了问题。
如果我定义
@State var vertices: [SCNVector3] = []
func applicationDidFinishLaunching(_ aNotification: Notification) {
....
let contentView = CloudView(data: $vertices)
....
window.contentView = NSHostingView(rootView: contentView)
...
}
@IBAction func getVertices(_ sender: Any) {
...
do {
let readVertices: [SCNVector3] = try... // read file and convert to [SCNVector3]
vertcices = readVertices // assign or not to assign, this is a question
print (readVertices.count, vertices.count)
}
...
}
然后打印出来:
3500 0
所以,它永远不会更新 CloudView,vertices 始终是一个空数组。
谁能解释一下我应该如何以正确的方式做到这一点?
【问题讨论】: