• SwiftUI 与 Core Data —— 数据定义

    在上文中,我列举了一些在 SwiftUI 中使用 Core Data 所遇到的困惑及期许。在今后的文章中我们将尝试用新的思路来创建一个 SwiftUI + Core Data 的 app,看看能否避免并改善之前的一些问题。本文将首先探讨如何定义数据。

  • SwiftUI 与 Core Data —— 问题

    我使用 Core Data 已经有三年的时间了,虽然至今也不能算是完全掌握,但基本上可以做到熟练使用,很少会犯原则性的错误了。当前,如何让 Core Data 融入流行的应用架构体系,在 SwiftUI、TCA、Unit Tests、Preview 等环境下更加顺畅地工作已成为我的主要困扰和研究方向。我将通过几篇文章来介绍近半年来在这方面的一些想法、收获、体会及实践,也希望能够与有类似困惑的朋友进行更多的探讨。

  • 实时切换 Core Data 的云同步状态

    在 WWDC 2019 上,苹果推出了 Core Data with CloudKit API ,极大地降低了 Core Data 数据的云同步门槛。由于该服务对于开发者来说几乎是免费的,因此在之后的几年中,越来越多的开发者在应用中集成了该服务,并为用户带来了良好的跨设备、跨平台的使用体验。本文将对实时切换 Core Data 云同步状态的实现原理、操作细节以及注意事项进行探讨和说明。

  • 如何在 Core Data 中进行批量操作

    Core Data 的优势主要体现在对象图管理、数据描述、缓存、延迟加载、内存管理等方面,但在对持久化数据的操作性能方面表现一般。事实上,在相当长的时间中,Core Data 的竞品总是喜欢通过各种图表来展现它们在数据操作性能上对 Core Data 的碾压之势。Apple 于数年前起陆续提供了批量更新、批量删除以及批量添加等 API ,在相当程度上改善 Core Data 在处理大量数据时性能劣势。本文将对 Core Data 的批量操作做以介绍,包括:原理、使用方法、高级技巧、 注意事项等内容。

  • Core Data 是如何在 SQLite 中保存数据的

    Core Data 是一个具备数据持久化能力的对象图框架。相同的对象图在不同的持久化存储类型中( SQLite 、XML)的数据组织结构差别较大。如果你浏览过 Core Data 生成的 SQLite 数据库文件,一定会见过其中包含不少奇怪的表和字段。本文将对这些表和字段进行介绍,或许可以换个角度帮助你解开部分疑惑,例如: Core Data 为什么不需要主键、NSManagedObjectID 是如何构成的 、保存冲突的判断依据是什么。

  • 关于 Core Data 并发编程的几点提示

    Swift 5.5 提供了盼望已久的 async/await 的功能,为多线程开发带来了前所未有的便利。但 Core Data 由于其特有的并发规则,使用不慎容易导致代码陷入不可控状态,因此让不少开发者对在 Core Data 中进行多线程开发产生了望而却步的情绪。本文将对 Core Data 并发编程中几个常见的问题予以提示,以便开发者更好地了解 Core Data 的并发规则,充分享受 Core Data 提供的强大功能。

  • 掌握 Core Data Stack

    或许觉得比较枯燥,亦或许感觉 Xcode 提供的模版已经满足了使用的需要,很多 Core Data 的使用者并不愿意在 Core Data Stack 的了解和掌握上花费太多的精力。这不仅限制了他们充分使用 Core Data 提供的丰富功能,同时也让开发者在面对异常错误时无所适从。本文将对 Core Data Stack 的功能、组成、配置等做以说明,并结合个人的使用经验聊一下如何设计一个符合当下需求的 Core Data Stack。本文并不会展示一个完整的创建代码,更多是原理、思路和经验的阐述。

  • 如何在 Core Data 中使用 Derived 和 Transient 属性

    使用过 Core Data 的开发者,一定会在编辑 Data Model 时看到过右侧的属性面板中的 Derived 和 Transient 两个属性。关于这两个属性的文档不多,大多的开发者并不清楚该如何使用或在何时使用该属性。文本将结合我的使用体验,对 Derived 和 Transient 两个属性的功能、用法、注意事项等内容作以介绍。

  • Core Data with CloudKit (一) —— 基础

    介绍如何使用 NSPersistentContainer 的文章并不少,但同其他 Core Data 的功能一样,用好并不容易。在两年多的使用中,我便碰到不少问题。借着今年打算在【健康笔记 3】中实现共享数据库功能的机会,我最近较系统地重新学习了 Core Data with CloudKit 并对其知识点进行了梳理。希望通过这个系列博文能让更多的开发者了解并使用 Core Data with Cloudkit 功能。

  • 在 CoreData 中使用持久化历史跟踪

    本文介绍了 CoreData 的 Persistent History Tracking 功能。详细讲解了从响应、提取、合并到清除的全过程处理方式,并提供了演示代码供读者使用。