SwiftData:类型“Schema.Relationship.Option”没有成员“cascade”

Boo*_*unz 3 swift swift-data swift-data-relationship

我们有一个 Swiftdata 模型,例如:

@Model
class MyThing {

   var name:String

   var myObject: MyCustomObject

   //...

}
Run Code Online (Sandbox Code Playgroud)

为了让“myObject”(也是一个 @Model)在删除 MyThing 实例时自动删除,我们需要向 myObject 添加属性(?)、关系(.cascade)。

本教程中显示了这一点:

在此输入图像描述

...还有这个苹果视频:

在此输入图像描述

但是当我尝试这样做时,就会发生这种情况(似乎没有选项可以做到这一点)...如果我手动输入它,它会说找不到:

在此输入图像描述

Swe*_*per 5

您找到的那些资源已过时。应该有一个参数标签deleteRule:

@Relationship(deleteRule: .cascade)
Run Code Online (Sandbox Code Playgroud)

另请参阅文档中宏的签名。

macro Relationship(
    _ options: Schema.Relationship.Option...,
    deleteRule: Schema.Relationship.DeleteRule = .nullify,
    minimumModelCount: Int? = 0,
    maximumModelCount: Int? = 0,
    originalName: String? = nil,
    inverse: AnyKeyPath? = nil,
    hashModifier: String? = nil
)
Run Code Online (Sandbox Code Playgroud)

如果没有参数标签,编译器认为.cascade已传递给options参数。