【发布时间】:2021-01-07 19:56:13
【问题描述】:
我是 iOS/Swift 和 MVVM 架构的新手,想知道如何将 测试数据 发送到 SwiftUI 预览版。 (实际数据通过 API 调用从 ViewModel 接收)
我要添加的测试数据:
test data = [(name: "Test1", price: "18.00-21.00"), (name: "Test2", price: "8.00-11.00"), (name: "Test3", price: "10.00")]
我的观点:
struct TodayView: View {
@ObservedObject var viewModel: ViewModel
var body: some View {
NavigationView {
List(viewModel.results, id: \.self) { item in
Text(item.name)
.font(.subheadline)
Text(item.price ?? "NIL")
.font(.headline)
}
.listStyle(InsetGroupedListStyle())
.navigationBarTitle(Text("\(viewModel.titleDate)"))
}
}
}
struct TodayView_Previews: PreviewProvider {
static var previews: some View {
// Add Test Data here? How to pass it into TodayView?
TodayView(viewModel: ViewModel())
}
}
我的视图模型(我将日期和实际数据都发送到视图):
class ViewModel: ObservableObject {
// Title Date
@Published var titleDate: String = ""
let dateLong = Date()
func createDate() -> String {
let formatter = DateFormatter()
formatter.dateFormat = "E, MMM d"
return formatter.string(from: Date())
}
init(){
self.results = [Model.Calendar]()
titleDate = self.createDate()
loadData()
}
func loadData() {
// API Call
}
// Actual Data received from API call
@Published var results: [Model.Calendar]
}
我的模特:
struct Model {
struct Calendar: Codable, Hashable {
var name: String
var price: String
}
}
【问题讨论】: