Swift 5.9 和新的 SwiftData 框架引入了@Model和#Predicate宏。我们现在可以在模型中使用自定义枚举和结构,如下所示:
@Model
final class Item {
var name: Name
var nature: Nature
struct Name: Codable {
let base: String
let suffix: String?
}
enum Nature: Int, Codable {
case foo = 0
case bar = 1
case baz = 2
}
init(name: Name, nature: Nature) {
self.name = name
self.nature = nature
}
}
Run Code Online (Sandbox Code Playgroud)
但是我们如何在 a 中使用它们呢Predicate?所有这些例子都失败了:
// Member access without an explicit base is not allowed in this predicate …Run Code Online (Sandbox Code Playgroud)