使用CoreData 核心数据开发 SwiftUI 应用程序

核心数据和 SwiftUI Core Data、SwiftUI 和 MVVM 打包在一起

问题

自从 SwiftUI 于 2019 年问世以来,我一直在寻找使用 Core Data 的最佳方式:用于处理持久存储数据的旧主宰。我经常对它与 SwiftUI 思维方式的冲突感到不满;促使我将与数据相关的东西暴露给视图,并威胁到我的 MVVM 架构。Apple 默认的 @FetchRequest 非常适合简单的视图,但随着项目变得越来越复杂,它开始变得有点乏味,更不用说在视图中使用 CoreData 的需要了。

所以,我做了我的研究。Donny Walls和Karin Prater提供了很多令人惊叹的内容。通过一些实验,我使用我所学的所有知识想出了我自己的系统。该系统遵循三个重要原则:

  • 视图不应该知道核心数据的存在(包括任何 NSManagedObject)
  • 所有与数据相关的任务都应由充当唯一真实来源的单例类处理
  • 我应该能够在内存中无缝使用预览和 XCTests

一个解法

那么我是如何做到这一点的。

持久存储

让我们从核心数据模型开始。

在这里插入图片描述

对于此示例,我有两个实体,它们之间具有一对多关系:TaskMO 和 ProjectMO。出于一个重要的原因,我选择将它们标记为托管对象。它们每个都有一个唯一的 UUID,一些属性,这就是所有重要的。

继续,持久存储。这对于任何

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值