首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Ask Apple 2022 中与 Core Data 有关问答

切换 iCloud 后是否会清空本地数据Q:在使用 Core Data with CloudKit 情况下,当用户注销设备上 iCloud 账户时,NSPersistentCloudKitContainer...销毁数据库后,还需要重新在本地创建新数据库。相较于开发者使用文件管理方式删除 SQLite 数据,这种方法更加地安全。...SwiftUI 下如何使用 FetchedResultsControllerQ:是否有在 SwiftUI 应用程序中使用 Core Data 任何实践或建议?...一旦它针对 CKContainer 运行,该容器中所有数据库都将具有相同 Schema( 公共/私有/共享 )。...A:当前 NSPersistentCloudKitContainer 不支持这样用法。或许可以考虑使用纯粹 CloudKit API 来实现他需求。

2.8K20

实时切换 Core Data 云同步状态

如果你对 Core Data with CloudKit 尚不了解,请阅读我写 有关 Core Data with CloudKit 系列文章3非实时切换所谓非实时切换是指:对 Core Data...数据权限模块在开启 NSPersistentCloudKitContainer 同步共享数据库公共数据库功能后,为了提高数据操作权限验证效率,该模块会将共享或公共数据库在 iCloud 上对应原始数据...如何处理共享数据库公共数据库同步鉴于 NSPersistentContainer 并没有提供数据鉴权方面的 API,在你应用使用了共享数据库公共数据库同步功能时,可以采用类似如下方式来处理:import...:id) }}强烈建议在关闭网络同步状态情况下,屏蔽掉应用中可能导致共享数据库公共数据库进行修改操作功能。...如果,你想修改 NSPersistentCloudKitContainer 默认数据处理行为,可以在创建 NSPersistentCloudKitContainer 实例之前,首先判断 CloudKit

1.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

Core Data with CloudKit (一) —— 基础

:私有数据库公共数据库、共享数据库。...私有数据库保存在用户个人iCloud空间中,公共数据库容量会随着应用程序使用增加而自动提高,最高可增加到1 PB 存储、10 TB 数据库存储,以及每天 200 TB 流量。...最近几年苹果也注意到了这个问题,通过添加PersistentContainer极大降低了Stack创建难度;SwiftUI及Core Data模版出现让初学者也可以较轻松地在项目中使用其强大功能了...在公共数据库中保存数据可以被任何授权过应用程序调用,即使app使用者没有登录iCloud账户,应用程序仍然可以读取其中内容。...•CKSubscriptionCloudKit是云端服务,它要同一iCloud账户不同设备(私有数据库)或者使用不同iCloud账号设备(公共数据库数据变化做出相应反馈。

97530

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

三种CloudKit数据库 介绍一下CloudKit三种数据库公共数据库 公共数据库存放是开发者希望任何人都能够访问数据。...公共数据库内容在CloudKit仪表台是可见公共数据库数据容量计入应用程序CloudKit存储配额。...当应用程序启动时或每运行30分钟,NSPersistentCloudKitContainer都会通过CKQurey操作来查询公共数据库变化并进行获取数据。...我个人推荐以下几种场合适于使用Core Data with CloudKit同步公共数据库: •只读不写比如提供模版、初始数据、新闻提醒等。...开发者在考虑使用Core data with CloudKit同步公共数据库数据时,一定要仔细考虑各方利弊,选择合适应用场景。

1.4K30

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

•持久化历史跟踪信息NSPersistentCloudKitContainer使用持久化历史跟踪来管理导入导出事务,在数据同步信息左右经常会伴随包含NSPersistentHistoryToken之类提示...如果使用NSPersistentContainer,可以直接调用coordinator.migratePersistentStore即可安全完成数据库文件位置转移。...但如果对NSPersistentCloudKitContainer加载store调用此方法,则必须强制退出应用程序后再次进入方可正常使用(虽然数据库文件被转移,但迁移后会告知加载CloudKit container...•让用户选择迁移数据(提醒用户须确保旧数据都已经同步到本地再执行迁移)•通过代码将旧数据转移到新容器和本地存储中,标记迁移完成(使用两个NSPersistentCloudKitContainer)•切换数据源...在下一篇文章中,我们聊一下同步公共数据库 引用链接 [1] www.fatbobman.com: http://www.fatbobman.com [2] 在CoreData中使用持久化历史跟踪: https

67230

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

我注意到,当我使用 Safari 客户端从 CloudKit 数据库中删除一条记录时( 通过 CloudKit Dashboard ),该对象仍会保留在设备上 Core Data 数据存储中。...这是有意为之吗?如何在 CloudKit 管理器与设备之间同步这些更改?谢谢!A:尚不清楚此工作流程是否会向 NSPersistentCloudKitContainer 生成推送通知。...如何确定是否已同步完成Q:我正在使用 NSPersistentCloudKitContainer,并想改善设备初次从 iCloud 上下载数据时用户体验。有没有办法告诉用户数据已完成同步?...另外可以考虑使用 CloudKit API 查询云端数据条数,然后与已经同步到本地记录数进行比对,获得大致同步进度( 此方式仅适用于数据模型简单,关系不太复杂情况 )。...筛选关系数据Q:我发现在 SwiftUI使用 @FetchRequest 是将用户界面与 Core Data 数据绑定很好手段。然而,在使用关系来获得同样无缝绑定时,我碰到了一个小问题。

3.2K20

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

•遥测(Telemetry)使用直观可视化效果,深入了解应用程序服务器端性能以及跨数据库和推送事件利用率。...我将在下篇文章详细讨论该如何对Core Data with CloudKit数据模型做版本迁移。 安全角色(Security Roles) 安全角色仅适用于公共数据库。...CloudKit使用基于角色访问控制(RBAC)来管理权限和控制对公共数据库中数据访问(私有数据库对于应用程序用户是唯一)。...with CloudKit,因此让我们来看一下NSPersistentCloudKitContainer是如何将Core Data托管对象属性转换成CloudKitRecore Type字段。...两者结合使用,可以获得更好效果。 总结 大多数使用Core Data with CloudKit场景,开发者基本无需使用CloudKit仪表盘。

72720

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

Core Data with CloudKit(二)——同步本地数据库到iCloud私有数据库 本系列文章一共六篇。...快速指南 在应用程序中启用Core Data with CloudKit功能,只需要以下几步: 1.使用NSPersistentCloudKitContainer2.在项目TargetSigning&...let container: NSPersistentCloudKitContainer 启用CloudKit 点击项目中对应Target,选择Signing&Capabilities。...在现有Core Data项目中添加Host in CloudKit支持 有了模版项目的基础,将Core Data项目升级为支持Core Data with CloudKit也就非常容易了: •使用NSPersistentCloudKitContainer...总结 在本文中,我们探讨了如何实现将本地数据库同步到iCloud私有数据库。 下一篇文章让我们一起探讨如何使用CloudKit仪表台。从另一个角度认识Core Data with CloudKit

2K20

Core Data with CloudKit (六) —— 共享数据

就像WWDC session Build apps that share data through CloudKit and Core Data[2]提到那样,共享数据功能实现远复杂于同步私有数据库以及同步公共数据库...网络端和本地端数据保存逻辑如下: 共享数据库示意图.drawio-2 与同步公共数据库一样,Core Data with CloudKit为了缩短通过网络查询CloudKit数据时间,将NSManagedObject...在SwiftUI下,用于尚未生成CKShare情况构造方法在使用UIViewControllerRepresentable包装时异常,因此,推荐在SwiftUI下首先使用代码(share)手动为托管对象生成...,请阅读我另一篇文章在SwiftUI使用UIKit视图[4]。...调试须知 相较于同步本地数据库、同步公共数据库,调试共享数据难度更大,对开发者心态考验也更多。 由于无法在模拟器上进行调试,开发者需要准备至少两台拥有不同iCloud账户设备。

1.3K20

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

上周,我在博客中列出了我对今年 WWDC 中期待看到 SwiftUI 方面的变化。这周,我想继续分享我对 Core Data 期待。...从 SwiftUI 经验可以看出,当苹果打算启动 Core Data Swift 化时,我们必然能够从 Swift 社区提案中看到端倪。...目前,基于 Swift 实现 API 包括:FetchRequest( 在 SwiftUI 框架中 )和 SortDescriptor。...目前已拥有了私有库同步、公共库同步、共享数据等众多功能。可以说,相较于 Core Data 框架本身,苹果在推动 Core Data 云端同步工作上成绩是有目共睹。...改善 Core Data with CloudKit 同步表现 紧迫性:5 实现可能性:3.5( 总分 5 分 ) 随着采用 Core Data with CloudKit 应用增加,使用者创建数据也急剧膨胀

46010

使用 SwiftUI Eager Grids

介绍 早在 2020 年,我们就拥有了在 SwiftUI(LazyVGrid 和 LazyHGrid)中绘制网格新视图控件。两年后,我们又获得了另一种在网格(Grid)中显示视图视图控件。...这篇文章主题 Eager Grids 正好相反。SwiftUI 不在乎它们是在屏幕上还是在屏幕外。所有视图都被同等对待。这可能会出现大量单元性能问题。...当没有布局容器存在时,SwiftUI 会隐式使用 VStack。...SwiftUI 需要以某种方式解决这个问题,如果你运行代码,你会得到以下结果: 为了打破平局,一个简单解决方案是添加第三行: GridRow { CellView(width: 50, color...您可以下载带有随机面孔不存在的人方形图片!它们是人工智能生成。 视频中使用图片来自该网站。

4.3K20

WWDC 23 ,SwiftUI 5 和 SwiftData 初印象

在不考虑兼容旧版本情况下,我认为 SwiftUI 5.0 升级可以打 95 分(满分 100 分),不过考虑到很多开发者在相当一段时间内还无法使用这些新功能,心情就会异常低落。...这是我目前整理一些有关 SwiftData 问题和注意事项( 原文发表在推文中,没有进行更系统归纳): 尚不支持公共和共享数据云同步 在当前版本中,通过其他上下文(ModelContext)创建数据并不会自动合并到视图上下文中...中进行) 同样受到 CloudKit 同步限制,演示中 Attribute(.unique) 并不适用于同步场景 目前功能比 Core Data 少,没有新增加 PersistentModel...然而,Core Data with CloudKit API 在客户端方面没有任何调整,很令人失望。...对于绝大多数开发者来说,一旦能够在应用中使用这些新功能,苹果或许又会带来更多新诱惑。SwiftUI 新特性极大拓展了其表达能力,但同时也增加了其学习曲线,特别是对初学者而言。

1.1K20

WWDC 23 ,SwiftUI 5 和 SwiftData 初印象

在不考虑兼容旧版本情况下,我认为 SwiftUI 5.0 升级可以打 95 分(满分 100 分),不过考虑到很多开发者在相当一段时间内还无法使用这些新功能,心情就会异常低落。...这是我目前整理一些有关 SwiftData 问题和注意事项( 原文发表在推文中,没有进行更系统归纳): 尚不支持公共和共享数据云同步 在当前版本中,通过其他上下文(ModelContext)创建数据并不会自动合并到视图上下文中...中进行) 同样受到 CloudKit 同步限制,演示中 Attribute(.unique) 并不适用于同步场景 目前功能比 Core Data 少,没有新增加 PersistentModel...然而,Core Data with CloudKit API 在客户端方面没有任何调整,很令人失望。...对于绝大多数开发者来说,一旦能够在应用中使用这些新功能,苹果或许又会带来更多新诱惑。SwiftUI 新特性极大拓展了其表达能力,但同时也增加了其学习曲线,特别是对初学者而言。

36610

SwiftUI 与 Core Data —— 问题

当前,如何让 Core Data 融入流行应用架构体系,在 SwiftUI、TCA、Unit Tests、Preview 等环境下更加顺畅地工作已成为我主要困扰和研究方向。...在持久化存储上增加了更多 Triger 操作,并在协调器上提供了响应变化 API数据批量操作允许开发者跳过上下文,直接从协调器上对持久化存储进行批量操作Core Data with CloudKit...几乎不需对核心代码做调整,新增了 NSPersistentCloudKitContainer ,在协调器上附加了一个用于网络同步模块。...在使用了数据网络同步情况下( Core Data with CloudKit),由于无法在产品上线后修改实体或属性名称( 只增不减不改原则[4],无论原有的实体、属性、关系名称定义得多么不合理,开发者也只能承受...除了创建托管环境所需操作繁杂外,托管环境在某些场合下运行稳定性并不可靠。事实上,Core Data 托管环境已经是当下导致 SwiftUI 预览失败主要原因之一。

90440

CloudKit实践

CloudKit也具有安全性,为用户私人数据提供了完整保护。而开发者不仅只能接入自己数据库,也不允许查看用户私有数据。...CloudKit适用于那些在服务端计算量不大,却需要使用大量数据iOS平台独占应用。 二、分类 CloudKit 基础对象类型有 7 种。...CKDatabase: Database 即数据库,私有数据库用来存储敏感信息,比如说用户性别年龄等,用户只能访问自己私有数据库。...应用也有一个公开数据库来存储公共信息,例如你在构建一个根据地理位置签到应用,那么地理位置信息就应该存储在公共数据库里以便所有用户都能访问到。 CKRecord: 即数据库一条数据记录。...CloudKit 使用 record 通过 k/v 结构来存储结构化数据。

1.7K10
领券