【发布时间】:2019-10-24 08:20:54
【问题描述】:
所以我尝试在 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"))
}
}
那么,在 SwiftUI 中打印到控制台的正确方法是什么?
编辑: 我让 Landmark 符合 CustomStringConvertible:
struct Landmark: Hashable, Codable, Identifiable, CustomStringConvertible {
var description: String { name+"\(id)" }
var id: Int
var name: String
.....
我仍然收到“字符串不可转换为任何”错误。它现在应该工作吗?
【问题讨论】:
-
您的地标是否符合
CustomStringConvertible? -
您的问题是关于打印的,但由于出现错误,您无法编译。先修复错误,我确信打印会正常工作。
-
我编辑了这个问题。出于某种原因,我不得不重新清理和构建,然后在离开时出现另一个错误。
-
您是否尝试在 NavigationButton 之前添加
return? -
在 Xcode 12.4 上,只有当我使用真实设备时,所有打印结果才会出现在调试区域中。
标签: swiftui