当前位置: 首页 > news >正文

由一个 SwiftData “诡异”运行时崩溃而引发的钩深索隐(六)

在这里插入图片描述

概述

在 WWDC 24 中,苹果推出了数据库框架 SwiftData 2.0 版本。听说里面新增了能让数据记录“借尸还魂”的绝妙法器,到底是真是假呢?

在这里插入图片描述

我们在上篇博文中介绍了 History Trace 是如何稳妥的处理数据删除操作的。而在这里,我们将继续介绍 SwiftData 2.0 中另一个新特性:“墓碑”(Tombstone)。

在本篇博文中,您将学到如下内容:

  • 概述
  • 10. SwiftData 2.0 中的“墓碑”机制让已“死”的数据“借尸还魂”
  • 11. History Trace 机制的“美中不足”
  • 总结

这是本系列第六篇,也是最后一篇博文。闲言少叙,让我们马上开始 SwiftData 精彩的探究之旅吧!

Let‘s dive in!!!😉


10. SwiftData 2.0 中的“墓碑”机制让已“死”的数据“借尸还魂”

从 SwiftData 2.0 开始,苹果加入了新的“墓碑”(Tombstone)机制。它的作用很简单:就是让”有事烧纸“的数据“起死回骸”。

我们可以在托管类型中任意指定的属性上开启“墓碑”:

@Model
class Item {@Attribute(.preserveValueOnDeletion)var name: Stringvar timestamp: Dateinit(name: String) {self.name = nametimestamp = .now}
}

如上代码所示,我们在 Item 类型的 name 属性上通过 @Attribute(.preserveValueOnDeletion) 宏开启了 Tombstone 模式。一旦为托管类型开启“墓碑”模式,当该类型的实例从容器被删除后就会变为“死而不僵的尸体”,就问你们怕不怕?😃

在开启了“墓碑”模式之后,当记录被删除时我们可以通过历史记录追踪 Change 中 DefaultHistoryDelete 结构的 tombstone 属性来访问它:


http://www.mrgr.cn/news/30900.html

相关文章:

  • 计算机知识包括哪些和应用?
  • 如何通过全面技术方案与灵活商务服务引领实时云渲染的未来?
  • 滚雪球学SpringCloud[6.2讲]: Zipkin:分布式追踪系统详解
  • 30个小米集团芯片工程师岗位面试真题
  • VMware Fusion 虚拟机Mac版 安装CentOS8 系统教程
  • 教你在本地部署AI大模型,效果很赞!
  • GEE教程:对降水数据进行重投影(将10000m分辨率提高到30m)
  • 微信小程序自定义navigationBar顶部导航栏(背景图片)适配所有机型,使用tdesign-miniprogram t-navbar设置背景图片
  • 中国光刻机突破28nm?进步巨大但前路漫漫
  • Go语言并发模式详解:深入理解管道与上下文的高级用法
  • STM32调试TIC12400笔记
  • 大模型之RAG-关键字检索的认识与实战(混合检索进阶储备)
  • 【HTTP】方法(method)以及 GET 和 POST 的区别
  • 阿里国际发布最新版多模态大模型Ovis,拿下开源第一
  • 第二证券:金价涨了!创一历史之最!
  • RAG+Agent人工智能平台:RAGflow实现GraphRAG知识库问答,打造极致多模态问答与AI编排流体验
  • 无消息传递的图变换器中的图归纳偏差
  • 各种文件格式对应的ContentType,适用于文件接收与上传下载等场景...
  • SaaS架构:流程架构分析
  • 惠海H6118 DC-DC 降压恒流芯片30V36v40V48V降12V9V24V36V 1.2A大电流 调光降压芯片IC舞台灯