首页 > 解决方案 > 如何在 SwiftUI 中将 print() 打印到 Xcode 控制台?

问题描述

所以我尝试在 SwiftUI 视图中调试时放置一个打印语句。

print("landmark: \(landmark)")

在下面的正文中。

var body: some View {
    NavigationView {
        List {
            Toggle(isOn: $userData.showFavoritesOnly) {
                Text("Favorite only")
            }
            ForEach(landmarkData) { landmark in
                print("landmark: \(landmark)")
                if !self.userData.showFavoritesOnly || landmark.isFavorite {
                    NavigationButton(destination: LandmarkDetail(landmark: landmark)) {
                        LandmarkRow(landmark: landmark)
                    }
                }
            }
        }
       .navigationBarTitle(Text("Landmarks"))            
    }
}

编译器错误: Xcode 编译器错误

那么,在 SwiftUI 中打印到控制台的正确方法是什么?

编辑:我使 Landmark 符合CustomStringConvertible

struct Landmark: Hashable, Codable, Identifiable, CustomStringConvertible {

var description: String { name+"\(id)" }

var id: Int
var name: String
.....

我仍然收到“字符串不可转换为任何”错误。它现在应该工作吗?

标签: swiftui

解决方案


至少在 Xcode 12/Swift 5.3 中,您可以轻松地在函数构建器的任何位置添加打印语句,只需将其返回值存储在通配符中,有效地忽略它:

let _ = print("hi!")

无需设置或其他详细信息!


推荐阅读