我目前正在使用Xcode版本15.0,并希望实现一个箭头的搬运工。当使用一个立场变量,因为它是在互联网上的各种网站,最近出现了一个以前未知的问题,即自Xcode版本15.0以下变量不能再被读取:
import SwiftUI
import RealmSwift
struct commands: Commands{
@ObservedResults(Book.self) var allBooks
@State private var isShowing = false
@State private var test = "test"
private var test2 = "tessssst"
var fileManager = FileManagerSingelton.shared
var body: some Commands {
CommandMenu("import"){
Button("Import File"){
isShowing.toggle()
} //$isShowing is probably the error and becomes nil
.fileImporter(isPresented: $isShowing, allowedContentTypes: [.item]) {result in
switch result {
case .success(let url):
pass
case .failure(let error):
print(error)
return
}
}
}
}
}
为了调试,我添加了两个变量Test和Test2
(lldb) po test
error: Couldn't lookup symbols:
SpeedReader.commands.test.getter : Swift.String
(lldb) p test
error: Couldn't lookup symbols:
SpeedReader.commands.test.getter : Swift.String
(lldb) po test2
"tessssst"
(lldb) p test2
(String) "tessssst"
不幸的是,我还没有在Steckoverflow上发现类似的问题。
1条答案
按热度按时间twh00eeo1#
具体的错误是lldb找不到
@State
变量的getter。大概是@State
宏导致swift在你的变量周围生成getter和setter来完成它的工作,但是编译器选择“内联”使用getter,而不是发出一个可以在调试器中调用的常规方法。您可以使用
v
来检查变量。v
对值进行静态检查,而不是像p
那样在调试对象中调用代码,因此有时可以忽略这类问题。但如果你有时间,也值得向swift bug reporter提交一个bug:
https://github.com/apple/swift/issues/
在
-ONone
中,swift应该使getter在调试器中可调用。