SwiftUI不允许在SwiftUI视图中添加秘密的打印语句,以帮助调试。我最近遇到一个问题,即我在视图模型初始化程序中初始化Core Data属性,并且在循环中重复调用该代码。我确实需要深入了解原因,但是事实证明这样做很困难,而不能在UI代码的各个位置放置一些打印语句以更好地了解发生了什么。
尽管无法在SwiftUI中添加打印语句,但是可以从SwiftUI(返回Views)调用函数,并且这些函数显然包含普通的Swift代码,其中可以包括打印语句。因此,此解决方案有效。这是一个返回EmptyView并打印一些内容的函数:
func log(_ log: String) -> EmptyView {
print("** \(log)")
return EmptyView()
}
然后我可以将EmptyView放置在SwiftUI视图层次结构内的任何位置,例如,紧靠我感兴趣的生命周期的视图旁边,并且不会影响该视图,因为它为空:
var body: some View {
VStack {
log("MainListView: VStack")
HStack {
Text("您好")
}
就是这样–在SwiftUI代码中添加日志的快速方法。有趣吧