Redian新闻
>
苹果推出 SwiftData,可替代 SwiftUI 的 Core Data

苹果推出 SwiftData,可替代 SwiftUI 的 Core Data

公众号新闻

作者 | Sergio De Simone
译者 | 马可薇
策划 | Tina

苹果于 WWDC 2023 上推出新框架 SwiftData,提供声明性的、以 Swift 为先的 API,可在 iOS 应用中进行数据持久化工作。SwiftData 可轻松将一个 Swift 类转换为一个持久化模型,非常适合同 SwiftUI 一并使用。

在几年前通过 SwiftUI 改变了 UI 在其平台上的定义方式后,苹果正在迈出超越 Core Data 的第一步,即一个基于 ORM、严格绑定于 Objective-C 动态能力的持久化框架。

虽然 SwiftUI 所提供的 API 让持久化模型的定义成为可能,但这种方式却颇为繁琐。Core Data 通常是在 Xcode 内集成的 Schema Model 编辑器上使用,由此生成的 .xcdatamodeld 是真实之源,可被用于自动生成存根(stub)。存根所提供的基类则被用作实际模型的基类。

SwiftData 的方式则完全相反,它是将代码看作是真实之源,并以此定义一个简单的模型:

@Modelclass Recipe {    @Attribute(.unique) var name: String    var summary: String?    var ingredients: [Ingredient]}

仔细看能发现 SwiftData 是如何依赖 Swift 5.9 中新引入的宏功能。简而言之,@Model 宏会将 @PersistedProperty 应用于 Recipe 类的所有属性,并在类的实现中添加初始化代码和其他的必要属性。

由于这层额外的逻辑对开发者而言完全透明,SwiftData 得以将所有属性映射至其底层存储。据苹果公司称,持久性对象会在需要时从持久化存储中获取并更新。

Bool、Int、String 等简单类型支持开箱可用,但更为复杂的类型则必须要符合 Codable 协议,才能于持久化类中使用。

如上文所述,SwiftData 与 SwiftUI 的相性很好。而事实上,@Model 宏也会让类在符合 ObservableObject 协议的同时,让所有持久化的属性表现为 @Published 属性的形式。此外,将 SwiftUI 视图接入持久化模型只需使用一个新的 @Query 属性。与 @State 和 @Binding 的使用方式相类似,每次底层数据发生变化时,@Query 可确保视图的自动重新渲染。

SwiftData 中还提供对谓词(Predicate)定义的支持,可用于过滤数据。编译时对谓词进行检查,并对类型不匹配的问题报编译错误。此外,SwiftData 模型也可通过 CloudKit 或以 iCloud 云盘中存储的文件形式进行跨设备同步。

为让开发者能更为轻松地迁移至 SwiftData,该框架支持在现有 Core Data 应用中的逐步采用,在苹果提供的演示项目中展示了如何在一个 Core Data 应用中仅部分使用 SwiftData。

最后值得留意的是,SwiftData 并不是换了皮的 Core Data。正如苹果于 WWDC 中所演示的,SwiftData 是借助了同 Core Data 一样的持久化引擎,但却是一个完全独立的堆栈。

原文链接

Apple Introduces SwiftData, a SwiftUI-Ready Core Data Replacement(https://www.infoq.com/news/2023/06/swiftdata-persistent-framework/)

声明:本文为 InfoQ 翻译,未经许可禁止转载。

今日好文推荐

十七年来奇葩大崩溃!为不让OpenAI和谷歌白拿数据,Reddit 收取巨额API 费用还诽谤开发者,社区爆发大规模抗议

“偷”代码建起公司、学历造假、6天拿下1亿美元却拖欠工资,这位AI独角兽CEO屡遭质疑后亲自回应了

市值暴涨10519%,原来全世界搞大模型的企业都在给这位华人打工!

百度推出生成式AI代码助手,覆盖 30 种编程语言;高考生喊话马化腾,腾讯回应;机房宕机损失过亿,唯品会负责人被免职 | Q资讯

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
苹果推出Vision Pro,西门子重金押注,“产业元宇宙”持续快速潜行赠书|因果推断实证领域力作斯科特·坎宁安的《因果推断》终于来啦today's data on housing market涨价十倍,患者急了:不要再说这药“可替代”了!【周末买菜专场】5折出现!无可替代的好价,网红豆浆、超人气荔枝香葡萄、麻辣小龙虾,还有每日必备食材!前哨速览:苹果推出AI声音助理,高压氧气长寿疗法获得更多验证她的“毁容式”演技被夸上热搜,曾和胡歌谈“姐弟恋”,跑10年龙套终成视后:“我无可替代”!How a Controversial Play Captured Aranya’s Cultural DividenoSQL DB or relational DB for log data【租房】免中介费,9月入住Studio和一室公寓,近哈佛、Tufts大学和Porter Sq.|无忧精选公寓楼高利率储蓄帐户太诱人!! 苹果推出四天即吸引近10亿存款苹果推出更严App Store审核机制/中国女足获首胜/华为打造「系统云翻新」功能|灵感周报腾讯旗下音频平台企鹅FM将停止运营;美团发布第四代无人机;Meta正式推出Twitter替代品Threads……【租房】9月入住Studio和一室公寓,近哈佛、Tufts大学和Porter Sq.|无忧精选公寓楼Z世代超模新面孔,成为不可替代的未来偶像LLC, Inc, Co, Corp, and Ltd分别是什么意思,你知道吗?细节和大视野,中间还需要些什么China’s Youth Are Hooked on a New Outdoor Sport: Lure Fishing苹果推出“跨时代”新品!然鹅网友却说....想明白,看通透,才有好日子过J Clin Invest | 多团队合作揭示芦可替尼治疗急性移植物抗宿主病新机制《向着温暖的阳光》&《终于等到你》请教苹果现已支持 Swift 包索引高利率储蓄帐户太诱人 苹果推出四天即吸引近10亿存款JUC多线程:CountDownLatch、CyclicBarrier、Semaphore 同步器原理太“huì”了!这份美好生活攻略,打包收好只有1800人的“中国最小地级市”:独一无二、不可替代!巴黎市长将重修Châtelet 广场以方便行人5篇Nature和2篇Nature Medicine预测肺癌细胞的未来行为CompletableFuture真香,可以替代CountDownLatch!铁链女的真相【城事】巴黎市长将重修Châtelet 广场以方便行人《女人花》广告科技公司TTD推出媒体购买平台;Gusto Collective收购Mercury Integrated(广告狂人日报)匿名功能遭举报,知乎周源回应;苹果推出 visionOS 软件开发包;跟随索尼,XBox 订阅服务涨价|极客早知道继Travis Scott后,Taylor Swift演唱会因“超燃”现场再次引发区域地震AI袭来,人类还有什么无可替代的价值?
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。