更新SwiftData中的数据

mkh04yzy  于 2023-06-28  发布在  Swift
关注(0)|答案(1)|浏览(185)

我正在尝试更新SwiftData中的数据。然而,文档实际上只是:

func update(expressions: [String : NSExpression], 
            model: any PersistentModel.Type,
            where predicate: NSPredicate? = nil) throws -> Bool

作为一个新的开发人员,我不知道这意味着什么或如何使用它。我的代码如下:

try? context.update(expressions ["teamScores":NSExpression(format: "\(teamScores)")],
                    model: CounterModel.self)

失败的原因是exception of type NSException
老实说,我没能尝试太多。由于这样一个新的框架已经在6天前发布,因此除了建立模型、持久化数据和查询数据库之外,没有太多的文档或示例。

h79rfbju

h79rfbju1#

要更新数据,您可以通过@Bindable直接绑定到对象并更改所需的值。然后,更改应自动保存/持久化。
查看Build an app with SwiftData会话(在4:11)。代码基本上可以归结为:

@Model
final class Item {
   var text: String
}
struct EditorView: View {
   @Bindable var item: Item

   var body: some View {
      TextField("Item Text", text: $item.text)
   }
}

PS:在这个例子中,Item 是通过主视图中的@Query获取的,并传递给这个 EditorView

相关问题