• 最近更新
  • 全部文章
  • Tips
  • 关于
  • 搜索
  • Architecture (10)
  • Ask Apple 2022 (4)
  • Blog (4)
  • CloudKit (8)
  • Combine (1)
  • Core Data (30)
  • Foundation (3)
  • HowTo (10)
  • Linux (1)
  • NaturalLanguage (1)
  • Playground (3)
  • Plot (1)
  • Project (2)
  • Publish (4)
  • SPM (1)
  • Spotlight (1)
  • Swift (7)
  • Swift Playgrounds (3)
  • SwiftData (2)
  • SwiftUI (94)
  • UIKit (1)
  • Vapor (1)
  • Vision (1)
  • WWDC21 (3)
  • WWDC22 (5)
  • WWDC23 (6)
  • async/await (1)
  • swiftformat (1)
  • swiftlint (1)
  • vscode (2)
  • 健康笔记 (10)
  • 小题大做 (5)
  • 布局 (4)
  • 持久化框架 (32)
  • 本地化 (2)
  • 杂谈 (4)
  • CoreData 探秘 - 从数据模型构建到托管对象实例

    • Core Data
    • 持久化框架
    • 发布于2023年09月19日

    对每一个使用 Core Data 的开发者来说,用 Xcode 的 Core Data 模型编辑器构建数据模型、创建容器、加载数据模型并通过托管对象上下文最终创建托管对象实例,这都是十分普通的过程。但你是否好奇过这一切的内部运行机制,Core Data 是如何在幕后辅助我们完成这一切的?本文将深入探究 Core Data 是如何通过数据模型构建出托管对象实例的内部运行机制,读完本文可以让你对 Core Data 的工作流程有更深入的理解,在开发中可以更得心应手。

  • SwiftDataKit:让你在 SwiftData 中使用 Core Data 的高级功能

    • English Version
    • SwiftData
    • Core Data
    • 持久化框架
    • 发布于2023年09月07日

    作为 Core Data 的继任者,全新的 SwiftData 框架在 WWDC 2023 上正式发布。SwiftData 预计会在未来很长一段时间内成为苹果生态系统的主要对象图管理和数据持久化解决方案,为开发者提供服务与支持。本文将讨论,在不使用 Core Data 数据栈的情况下,开发者如何在 SwiftData 中调用 Core Data 提供的高级功能,以扩展 SwiftData 目前的能力。

  • WWDC 2023 Core Data 有哪些新变化

    • English Version
    • Core Data
    • SwiftData
    • WWDC23
    • 持久化框架
    • 发布于2023年07月04日

    虽然在 WWDC 2023 上,苹果将主要精力放在介绍新的数据框架 SwiftData 上,但作为 SwiftData 的基石,Core Data 也得到了一定程度上的功能增强。本文将介绍今年 Core Data 获得的新功能。

  • WWDC 23 ,SwiftUI 5 和 SwiftData 的初印象

    • English Version
    • SwiftUI
    • Core Data
    • WWDC23
    • 持久化框架
    • 发布于2023年06月09日

    WWDC 2023 正在如火如荼地进行。苹果不仅带来了全新形态的硬件产品,还推出了几个相当震撼的新框架。本文将聊聊我对本届 WWDC 中 SwiftUI 和 SwiftData 的初步印象。

  • WWDC 2023 我期待 Core Data 带来的新变化

    • English Version
    • Core Data
    • WWDC23
    • 持久化框架
    • 发布于2023年05月17日

    上周,我在博客中列出了我对今年 WWDC 中期待看到的 SwiftUI 方面的变化。这周,我想继续分享我对 Core Data 的期待。

  • SwiftUI + Core Data App 的内存占用优化之旅

    • English Version
    • Core Data
    • SwiftUI
    • 持久化框架
    • 发布于2023年03月08日

    尽管 SwiftUI 的惰性容器以及 Core Data 都有各自的内存占用优化机制,但随着应用视图内容的复杂( 图文混排 ),越来越多的开发者遇到了内存占用巨大甚至由此导致 App 崩溃的情况。本文将通过对一个演示 App 进行逐步内存优化的方式( 由原先显示 100 条数据要占用 1.6 GB 内存,优化至显示数百条数据仅需 200 多 MB 内存 ),让读者对 SwiftUI 视图的存续期、惰性视图中子视图的生命周期、托管对象的惰值特性以及持久化存储协调器的行缓存等内容有更多的了解。

  • SwiftUI 与 Core Data —— 安全地响应数据

    • English Version
    • Core Data
    • SwiftUI
    • 持久化框架
    • 发布于2022年12月13日

    保证应用不因 Core Data 的原因导致意外崩溃是对开发者的起码要求。本文将介绍可能在视图中产生严重错误的原因,如何避免,以及在保证视图对数据变化实时响应的前提下如何为使用者提供更好、更准确的信息。由于本文会涉及大量前文中介绍的技巧和方法,因此最好一并阅读。

  • SwiftUI 与 Core Data —— 数据获取

    • English Version
    • Core Data
    • SwiftUI
    • 持久化框架
    • 发布于2022年12月06日

    本文中我们将探讨在 SwiftUI 视图中批量获取 Core Data 数据的方式,并尝试创建一个可以使用 mock 数据的 FetchRequest。由于本文会涉及大量前文中介绍的技巧和方法,因此最好一并阅读。

  • SwiftUI 与 Core Data —— 数据定义

    • English Version
    • Core Data
    • SwiftUI
    • 持久化框架
    • 发布于2022年11月29日

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

  • SwiftUI 与 Core Data —— 问题

    • English Version
    • Core Data
    • SwiftUI
    • 持久化框架
    • 发布于2022年11月22日

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

  • Ask Apple 2022 中与 Core Data 有关的问答 (下)

    • English Version
    • Core Data
    • Ask Apple 2022
    • 持久化框架
    • 发布于2022年10月24日

    Ask Apple 为开发者与苹果工程师创造了在 WWDC 之外进行直接交流的机会。本文对本次活动中与 Core Data 有关的一些问答进行了整理,并添加了一点个人见解。本文为下篇。

  • Ask Apple 2022 中与 Core Data 有关的问答 (上)

    • English Version
    • Core Data
    • Ask Apple 2022
    • 持久化框架
    • 发布于2022年10月20日

    Ask Apple 为开发者与苹果工程师创造了在 WWDC 之外进行直接交流的机会。本文对本次活动中与 Core Data 有关的一些问答进行了整理,并添加了一点个人见解。本文为上篇。

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

    • Core Data
    • CloudKit
    • 持久化框架
    • 发布于2022年07月26日

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

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

    • English Version
    • Core Data
    • 持久化框架
    • 发布于2022年06月06日

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

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

    • English Version
    • Core Data
    • 持久化框架
    • 发布于2022年05月31日

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

  • 在 Core Data 中查询和使用 count 的若干方法

    • English Version
    • Core Data
    • 小题大做
    • 持久化框架
    • 发布于2022年01月17日

    在 Core Data 中,开发者经常需要面对查询记录数量(count),使用 count 作为谓词或排序条件等需求。本文将介绍在 Core Data 下查询和使用 count 的多种方法,适用于不同的场景。

  • 如何在 Core Data 中对 NSManagedObject 进行深拷贝

    • Core Data
    • 持久化框架
    • 发布于2021年11月15日

    本文将介绍关于在 Core Data 中对 NSManagedObject 进行深拷贝的技术难点、开发思路,以及我的解决方案——MOCloner。

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

    • English Version
    • Core Data
    • 持久化框架
    • 发布于2021年11月05日

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

  • 掌握 Core Data Stack

    • English Version
    • Core Data
    • 持久化框架
    • 发布于2021年11月02日

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

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

    • English Version
    • Core Data
    • 持久化框架
    • 发布于2021年10月26日

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

  • 在 Spotlight 中展示应用中的 Core Data 数据

    • English Version
    • Core Data
    • SwiftUI
    • Spotlight
    • 持久化框架
    • 发布于2021年09月22日

    本文将讲解如何通过 NSCoreDataSpotlightDelegate(WWDC 2021 版本)实现将应用程序中的 Core Data 数据添加到 Spotlight 索引,方便用户查找并提高 App 的曝光率。

  • Core Data with CloudKit (六) —— 创建与多个 iCloud 用户共享数据的应用

    • English Version
    • CloudKit
    • Core Data
    • 持久化框架
    • 发布于2021年09月11日

    本文中,我们将探讨如何使用 Core Data with CloudKit 创建使用 NSPersistentCloudKitContainer 与多个 iCloud 用户共享数据的应用。

  • 如何在 Xcode 下预览含有 Core Data 元素的 SwiftUI 视图

    • English Version
    • SwiftUI
    • Core Data
    • 持久化框架
    • 发布于2021年08月28日

    本文将探讨导致 SwiftUI 预览崩溃的部分原因,如何在之后的开发中避免类似的崩溃出现以及如何在 Xcode 中安全可靠地预览含有 Core Data 元素的 SwiftUI 视图

  • Core Data with CloudKit(五)—— 同步公共数据库

    • English Version
    • CloudKit
    • Core Data
    • 持久化框架
    • 发布于2021年08月13日

    本文将介绍如何通过 Core Data with CloudKit 将公共数据库同步到本地,在本地创建 Core Data 数据库镜像。

  • Core Data with CloudKit(四)—— 调试、测试、迁移及其他

    • English Version
    • CloudKit
    • Core Data
    • 持久化框架
    • 发布于2021年08月11日

    本文聊一下在开发 Core Data with CloudKit 项目中常见的一些问题,让大家少走弯路、避免踩坑。

  • Core Data with CloudKit(三)—— CloudKit 仪表台

    • English Version
    • CloudKit
    • Core Data
    • 持久化框架
    • 发布于2021年08月09日

    本篇文章中,我们将一起研究 CloudKit 仪表台。

  • Core Data with CloudKit(二) —— 同步本地数据库到 iCloud 私有数据库

    • English Version
    • CloudKit
    • Core Data
    • 持久化框架
    • 发布于2021年08月09日

    本篇文章中,我们将探讨 Core Data with CloudKit 应用中最常见的场景——将本地数据库同步到 iCloud 私有数据库。

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

    • English Version
    • CloudKit
    • Core Data
    • 持久化框架
    • 发布于2021年08月05日

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

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

    • Core Data
    • 持久化框架
    • 发布于2021年07月27日

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

  • 聊一下在 SwiftUI 中使用 CoreData

    • SwiftUI
    • Core Data
    • 持久化框架
    • 发布于2020年10月28日

    本文并非一个教你如何在 SwiftUI 下使用 CoreData 的教程。主要探讨的是在我近一年的 SwiftUI 开发中使用 CoreData 的教训、经验、心得。

    Built with ConvertKit

    Copyright © 东坡肘子 (Fatbobman) 2023 辽ICP备20006550号-1

    Generated using Publish