如何在SwiftUI中安全地展开数据?
我希望安全地展开数据(使用guard或任何其他方式),以便在SwiftUI中呈现我的视图,以下是我的代码: 我不想使用“?”和“空”,我想安全地打开我的包裹 dataModel.items[索引].name ,如果有什么,然后显示,否则什么也不做,正如您在屏幕截图中看到的那样,我们将使用此代码获得4个视图,但它应该是“数据1”和“数据2”的2个视图 PS:我很聪明,知道我可以用“”代替“空”,但“”甚至是一个视图,我不需要它如何在SwiftUI中安全地展开数据?,swiftui,Swiftui,我希望安全地展开数据(使用guard或任何其他方式),以便在SwiftUI中呈现我的视图,以下是我的代码: 我不想使用“?”和“空”,我想安全地打开我的包裹 dataModel.items[索引].name ,如果有什么,然后显示,否则什么也不做,正如您在屏幕截图中看到的那样,我们将使用此代码获得4个视图,但它应该是“数据1”和“数据2”的2个视图 PS:我很聪明,知道我可以用“”代替“空”,但“”甚至是一个视图,我不需要它 struct Data: Identifiable {
struct Data: Identifiable
{
let id = UUID()
var name: String?
}
let Data1 = Data(name: "Data 1")
let Data2 = Data(name: "Data 2")
let Data3 = Data()
let Data4 = Data()
class DataModel: ObservableObject
{
@Published var items: [Data] = [Data1, Data2, Data3, Data4]
}
struct ContentView: View
{
@StateObject var dataModel = DataModel()
var body: some View
{
ForEach(dataModel.items.indices, id: \.self) { index in
Text(dataModel.items[index].name ?? "Empty")
.font(.title2)
.padding()
}
}
}
就像我的回答:
您可以尝试以下方法:
if let theName = dataModel.items[index].name {
Text(theName).font(.title2).padding()
}