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资讯

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

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