Practical Core Data 是Donny Wals撰写的一本书,面向想要了解更多 Apple Core Data 框架的中高级开发人员。无论您是 Core Data 的新手,还是多年前尝试过 Core Data 的老手,您都会发现本书将带您踏上整个框架的旅程。从 iOS 13 的 NSPersistentContainer 一直到 CloudKit 同步、迁移和单元测试等功能。您将在本书中看到这一切。
Practical Core Data 向您介绍了所有基本思想、概念和原则,以帮助您尽快启动并运行该框架。
章节概述
第 1 章 – 使用 Core Data 迈出第一步
在本章中,您将首先了解 Core Data。您将了解什么是 Core Data、它可以做什么以及如何使用它。您将了解一个简单的项目,该项目使用 Core Data 创建、更新和删除一个非常基本的模型。本章将介绍 Core Data 的模型编辑器以及封装所有 Core Data 基本构建块的“NSPersistentContainer”类。在本章结束时,您应该大致了解使用 Core Data 的应用程序是什么样的,它的功能是什么,以及如何将 Core Data 添加到项目中。
第 2 章 – 理解 Core Data 的构建块
在我们开始在应用程序中使用 Core Data 之前,了解 Core Data 的一些基本构建块很重要。在本章中,您将了解“NSPersistentContainer”中有哪些组件,以及每个组件的作用是什么。您将了解诸如“NSPersistentStoreCoordinator”、“NSManagedObjectModel”和“NSManagedObjectContext”等类。
第 3 章 – 使用模型编辑器定义实体
Core Data 的模型编辑器是将 Core Data 添加到任何项目的起点。您可以在此处定义要存储的实体、它们的关系、它们的属性等。本章将深入介绍模型编辑器。您将了解实体、关系、获取请求、瞬态属性、约束、模型版本等等。在本章结束时,您将对模型编辑器以及如何使用它来定义数据模型有一个深入的了解。
第 4 章 – 从 Core Data 存储中获取和显示数据
为应用程序定义数据模型后,您将希望在应用程序中使用该模型。在本章中,您将学习如何使用谓词过滤数据从 Core Data 存储中检索数据。您还将了解如何使用“NSFetchedResultsController”自动响应核心数据存储中的更改。除了了解有关检索数据的更多信息外,您还将了解故障、批量删除和更新请求、合并策略和查询生成。到本章结束时,您应该对如何操作存储在 Core Data 存储中的数据有了相当深入的了解。
第 5 章 – 在多线程环境中使用 Core Data
在前四章中,您已经在简单的单线程环境中使用了 Core Data。您仅通过持久容器的viewContext
与主托管对象上下文进行了交互。在本章中,您将了解 Core Data 严格的多线程规则和背景上下文。您将学习如何安全地将托管对象从一个上下文转移到另一个上下文,如何解决上下文之间的保存冲突,以及如何在正确的托管对象上下文中安全地运行 Core Data 代码。到本章结束时,您将能够优化 Core Data 代码以最佳利用线程,并始终防止阻塞主线程。
第 6 章 – 与应用程序和扩展程序共享核心数据存储
许多应用程序利用 iOS 的扩展系统来构建小部件、交互式通知、共享功能、iMessage 应用程序等。如果您的应用程序使用 Core Data,通常希望这些扩展能够访问您的 Core Data 存储并在需要时进行修改。在本章中,您将学习如何做到这一点。您还将了解如何使用 Core Data 的持久历史跟踪功能来自动提取您的扩展之一对 Core Data 存储所做的任何修改。
第 7 章 – 将您的商店与远程数据源同步
Core Data 的一个常见用途是在本地持久化数据,这些数据也存在于通过网络访问的服务器上。这样做可以显着提高应用程序的速度和离线体验,因为您不需要依赖网络来获取视图所需的每条数据。在本章中,我将演示如何构建使用 Codable
协议和 Core Data 的内置合并策略的同步策略。在向您展示了一个基本的单向同步策略之后,我将向您展示一个更高级的双向同步策略,它允许用户在离线时对记录进行修改。当用户重新联机时,这些修改将被推送到远程数据源。
第 8 章 – 将您的商店与 CloudKit 同步
在 iOS 13 中,Apple 为开发人员引入了一种便捷的方式,可以轻松地将本地 Core Data 存储与远程 CloudKit 存储同步。此功能允许用户跨设备同步数据,Core Data 自行完成所有繁重的工作。在本章中,您将了解如何利用此功能,以及如何将数据写入 CloudKit 的私有和公共存储
第 9 章 – 更新数据模型和执行迁移
本章涵盖了您需要了解的有关更新 Core Data 模型的所有信息。您将了解 Core Data 的自动迁移、模型映射、模型版本等。了解自动迁移的基础知识后,您将了解如何编写自己的模型映射。最重要的是,您将学习如何通过从头开始编写自己的迁移逻辑来完全控制 Core Data 的迁移过程。
第 10 章 – 调试和分析你的 Core Data 实现
了解如何在项目中使用和集成 Core Data 非常有用,但了解如何分析和调试它可能是将代码从优秀变为优秀的关键。本章向您介绍了一些启动参数,您可以使用这些参数来深入了解 Core Data 在幕后做了什么,以及使用仪器分析您的代码。您将学习如何使用从 Core Data 的日志记录和仪器中获得的信息来改进和优化您的 Core Data 代码和用户体验。
第 11 章 – 在单元测试中使用 Core Data
我坚信每个开发人员都应该尽可能为他们的代码编写单元测试。在本章中,我提供了一些关于如何在单元测试中正确设置和使用 Core Data 存储的指导。这将允许您通过为每个单元测试设置单独的临时存储来独立编写单元测试而不会相互干扰。
第12章 – 从这里去哪里?
本书应该为您在应用程序中成功实现 Core Data 做好准备。您在前几章中学习了 Core Data 的基础知识,并在后面的章节中学习了更复杂的用例和概念。虽然我已经尽力涵盖了很多,但总有更多的东西需要学习。在本章中,如果您在阅读完本书后想了解有关 Core Data 的更多信息,我将推荐我认为有用的文章、书籍和视频。
精品教程推荐
加入我们一起学习SwiftUI
QQ:3365059189
SwiftUI技术交流QQ群:518696470
教程网站:www.openswiftui.com