【发布时间】:2022-01-25 23:41:45
【问题描述】:
如何为 Swift Previews 结构中的结构传递示例数据?在我的代码中,我有具有一些属性的 StudentClass 结构。其中一个属性由另一个名为 Assignment 的结构组成。
import Foundation
struct StudentClass: Identifiable {
let id: UUID
let title: String
let teacher: String
var grade: Float
var theme: Theme
var assignments: [Assignment]
init(id: UUID = UUID(), title: String, teacher: String, grade: Float, theme: Theme, assignments: [Assignment]) {
self.id = id
self.title = title
self.teacher = teacher
self.grade = grade
self.theme = theme
self.assignments = assignments
}
}
extension StudentClass {
struct Assignment: Identifiable, Codable {
let id: UUID
let name: String
var grade: Float
var pointsScored: Float
var totalPoints: Float
init(id: UUID = UUID(), name: String, grade: Float, pointsScored: Float, totalPoints: Float) {
self.id = id
self.name = name
self.grade = grade
self.pointsScored = pointsScored
self.totalPoints = totalPoints
}
}
}
因此,在传递示例数据时,我尝试在示例属性列表中传递一个列表,但它在我的示例数据扩展上返回一个错误,即“表达式类型不明确,没有更多上下文”。 这是我的示例数据代码:
extension StudentClass {
static let sampleData: [StudentClass] =
[
StudentClass(title: "Math", teacher: "Baski", grade: 100.00, theme: .yellow, assignments: [["Math HW", 100.00, 5.0, 5.0], ["Math HW #2", 90.00, 4.5, 5.0]]),
StudentClass(title: "English", teacher: "Ritch", grade: 90.55, theme: .orange, assignments: [["English HW", 100.00, 5.0, 5.0], ["English HW #2", 90.00, 4.5, 5.0]]),
StudentClass(title: "Global Studies", teacher: "Tiedemann", grade: 95.92, theme: .poppy, assignments: [["GS HW", 100.00, 5.0, 5.0], ["GS HW #2", 90.00, 4.5, 5.0]]),
StudentClass(title: "Science", teacher: "Bolash", grade: 95.14, theme: .teal, assignments: [["Science HW", 100.00, 5.0, 5.0], ["Science HW #2", 90.00, 4.5, 5.0]])
]
}
我该如何解决这个问题?
【问题讨论】:
-
你为什么将一堆数组作为
Assignments 传递?他们应该是Assignment(name: ..., grade: ..., pointsScored: ..., totalPoints: ...)
标签: swift struct sample-data