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

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

欢迎大家在 Discord 频道2 中进行更多地交流在 WWDC 2019 上,苹果推出了 Core Data with CloudKit API ,极大地降低了 Core Data 数据的云同步门槛。...如果你对 Core Data with CloudKit 尚不了解,请阅读我写的 有关 Core Data with CloudKit 的系列文章3非实时切换所谓非实时切换是指:对 Core Data...( 在 Data Model Editor 中通过 Configuration 创建 ) 中的持久化存储与某个 CloudKit container 关联起来。...,然后将数据转换成 CloudKit 对应的格式,并保存在 SQLite 上的特定表中( ANSCKEXPORT......,NSPersistentCloudKitContainer 将无法获知在关闭期间本地数据发生的变化,从而会造成本地和云端数据的永久不同步。

1.5K20

Ask Apple 2022 中与 Core Data 有关的问答

这种方法可以减少同步的下载数据量( 节省设备存储容量 )并允许按需下载。这是 Core Data with CloudKit 与纯 CloudKit API 相结合的一种方式。...理论上,可以同步的数量和尺寸只上取决于用户的 iCloud 可用容量。...严格意义上,我们很难仅通过切换通知来判断当前同步的实际状态。更多内容请参阅 Core Data with CloudKit(四)—— 调试、测试、迁移及其他[7] 。...如果 Widget 遇到需要迁移的 CoreData Store,则 Widget 应重定向以启动应用程序。实际上,小部件永远不会从操作系统获得足够的资源来完成迁移。...如果我们不再关心本地数据,是否可以从与 CloudKit 同步的数据模型中删除未使用的实体?

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

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

    严格意义上,我们很难仅通过切换通知来判断当前同步的实际状态。 在实际的使用中,对用户感知影响最大的是数据导入状态。...当用户在新设备上安装了应用程序,并且已经在网络上保存有较多数据时,面对完全没有数据的应用程序用户会感到很茫然。...如果提供的数据集是放置在可同步的数据库中时需要谨慎处理。比如,已经在一台设备上创建了默认数据集并进行了修改,当在新设备上再次安装并运行应用程序时,处理不当可能导致数据被异常覆盖,或者重复。...仪表台[6]一文,我们已经探讨过CloudKit的两种环境设置。...增加version属性 这个策略是上一个策略的加强版。通过一开始在实体上添加version属性,对实体进行版本控制,通过谓词仅提取与应用程序当前版本兼容的记录。旧版本程序将不会提取新版本创建的数据。

    73130

    Core Data with CloudKit (一) —— 基础

    Core Data with CloudKit (一) —— 基础 这是系列文章的第一篇,该Core Data with CloudKit系列主要介绍了如何使用CoreData同步CloudKit的三种数据库类型...另外,在模拟器上的运行效果也远没有在真机上可靠。 Core Data with CloudKit的优点 •几乎免费开发者基本上不需要为网络服务再额外支付费用。...•Entities vs Record Types尽管我们通常会强调Core Data不是数据库,但实体(Enitities)与数据库中的表非常相似。我们在实体中描述对象,包括其名称、属性和关系。...在任何给定的上下文中,托管对象最多有一个实例对应于持久存储中的给定记录。在CloudKit上,每条记录被称作为CKRecord。...检查该操作是否导致私有数据库的com.apple.coredata.cloudkit.zone中的数据发生变化3.对所有创建CKDatabaseSubscription订阅的设备(同一iCloud账户)

    1K30

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

    -com.apple.CoreData.CloudKitDebug 1 更多有关调试参数的内容,请参阅 Core Data with CloudKit(四)—— 调试、测试、迁移及其他[4] 通过断点查找...在创建新的实体数据时,Core Data 将从 Z_PRIMARYKEY 表中找到对应实体最后使用的 Z_PK 值( Z_MAX ),在此值基础上加一,作为新记录的 Z_PK 值,并更新该实体对应的 Z_MAX...因此在 Core Data 定义数据模型时,开发者无须为实体特别定义主键属性(事实上也无法创建自增主键)。...Core Data 将创建更多的表来处理与 CloudKit 的同步事宜。考虑到表的复杂性和篇幅,就不继续展开了。不过有了上文的基础,了解它们的用途也并非很困难。...、导入操作日志、待导出数据、Core Data 关系与 CloudKit 关系对照表、本地数据对应的 CKRecordName、本地数据的 CKRecord 完整镜像( 共享公共数据库 )等等信息。

    1.6K20

    掌握 Core Data Stack

    它位于 Core Data Stack 的顶部,在应用程序与 Core Data Stack 之间承担着主要的交互职责。 应用程序通常至少需要创建一个运行于主线程的托管对象上下文实例。...如上图所示,一个持久化存储协调器只对应一个托管对象模型,但可以与多个托管对象上下文和多个持久化存储配合使用。...NSPersistentCloudContainer 是 NSPersistentContainer 的子类,它在简化传统 Core Data Stack 创建的基础上,提供了对于 CloudKit 网络数据库的支持...CoreData with CoreSpotlight 在 WWDC 2021 上,苹果推出了新版的 NSCoreDataCoreSpotlightDelegate API。.../tags/cloudkit/ [3] 数据共享的例程: https://developer.apple.com/documentation/coredata/synchronizing_a_local_store_to_the_cloud

    87130

    WWDC 23 ,SwiftUI 5 和 SwiftData 的初印象

    SwiftUI 如果说从 SwiftUI 1.0 到 4.0 每年的升级是一种小修小补的行为,那么今年苹果在 SwiftUI 5.0 上做出的努力至少算得上是中期改款了。...,直接定位到滚动视图的特定位置,只能使用一次 )、全新的滚动条控制( 闪烁 )、可自定义行视图在滚动区域的顶端和显示区域的显示状态( 例如可用其实现类似 watchOS 中的滚动到顶端子视图缩小的视觉效果...SwiftData 本质上就是一套官方推出的,基于 Swift 5.9 新功能实现的 Core Data 的 Swift 封装库。...com.apple.CoreData.ConcurrencyDebug 1 后,即使在新的 Context 中使用 transaction 尝试保持线程一致,仍会强制报错(即使是在一个新创建的 actor...然而,Core Data with CloudKit API 在客户端方面没有任何调整,很令人失望。

    1.1K20

    WWDC 23 ,SwiftUI 5 和 SwiftData 的初印象

    ,直接定位到滚动视图的特定位置,只能使用一次 )、全新的滚动条控制( 闪烁 )、可自定义行视图在滚动区域的顶端和显示区域的显示状态( 例如可用其实现类似 watchOS 中的滚动到顶端子视图缩小的视觉效果...SwiftData 本质上就是一套官方推出的,基于 Swift 5.9 新功能实现的 Core Data 的 Swift 封装库。...com.apple.CoreData.ConcurrencyDebug 1 后,即使在新的 Context 中使用 transaction 尝试保持线程一致,仍会强制报错(即使是在一个新创建的 actor...中进行) 同样受到 CloudKit 同步的限制,演示中的 Attribute(.unique) 并不适用于同步场景 目前功能比 Core Data 少,没有新的增加 PersistentModel...然而,Core Data with CloudKit API 在客户端方面没有任何调整,很令人失望。

    39110

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

    execution time: 0.0002s for count of 190. 190 */ 上文代码中的注释部分,为 Core Data 语句对应的 SQL 命令(使用 -com.apple.CoreData.SQLDebug...具体的设置方法,请参阅 Core Data with CloudKit(四)—— 调试、测试、迁移及其他[2] 二、使用托管对象上下文的 count 方法查询 count 数据 方法一的便捷版本。...0 // 统计关系的数量,将导致本条记录被填充 print(firstItemTagsCount) /* CoreData: sql: SELECT 0, t0.Z_PK, t0.Z_OPT, t0....复杂的逻辑将对数据更改的效率产生一定的影响。 为已经上线使用的 CoreData 数据库添加派生属性或 willSave 方法时,需通过 mapping 或迁移代码处理原有数据的新增属性。...引用链接 [1] www.fatbobman.com: http://www.fatbobman.com [2] Core Data with CloudKit(四)—— 调试、测试、迁移及其他: https

    4.7K20

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

    A:NSPersistentContainer 可以满足你的需求,你可以使用 viewContext 来驱动与用户交互的 UI,同时通过 newBackgroundContext 方法创建私有上下文,并在其上完成数据的保存...通过 CloudKit Dashboard 删除数据Q:一个与 Core Data 与 CloudKit 同步的问题。...我注意到,当我使用 Safari 客户端从 CloudKit 数据库中删除一条记录时( 通过 CloudKit Dashboard ),该对象仍会保留在设备上的 Core Data 数据存储中。...这是有意为之的吗?如何在 CloudKit 管理器与设备之间同步这些更改?谢谢!A:尚不清楚此工作流程是否会向 NSPersistentCloudKitContainer 生成推送通知。...另外可以考虑使用 CloudKit API 查询云端的数据条数,然后与已经同步到本地的记录数进行比对,获得大致的同步进度( 此方式仅适用于数据模型简单,关系不太复杂的情况 )。

    3.3K20

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

    Core Data with CloudKit (六) —— 创建与多个iCloud用户共享数据的应用 如想获得更好的阅读体验,可以访问我的博客www.fatbobman.com 本文中,我们将探讨如何使用...Core Data with CloudKit创建与多个iCloud用户共享数据的应用。...当所有者创建了一个共享关系后,系统将自动为其在私有数据库中创建一个新的自定义区域(com.apple.coredata.cloudkit.share.xxx-xx-xx-xx-xxx),并将共享的数据(...包括其关系数据)从私有数据库中的com.apple.coredata.cloudkit.zone移动到新建的Zone中。...网络端和本地端数据保存逻辑如下: 共享数据库示意图.drawio-2 与同步公共数据库一样,Core Data with CloudKit为了缩短通过网络查询CloudKit数据时间,将NSManagedObject

    1.4K20

    最新 iOS 框架整体梳理(一)

    下面是官方文档对它的一个概述: CallKit允许您将您的呼叫服务与系统上其他与呼叫相关的应用程序集成在一起。CallKit提供调用接口,您可以使用VoIP服务处理后端通信。...,可以把iPhone上的地图、音乐、电话等功能映射到车载屏幕上使用。...官方文档 16、CloudKit 这个框架我们首先能联想到肯定是 iCloud了,的确这个框架也是专门用来给它服务的,每当我们看到一个新框架的时候我们脑袋里想的肯定是这框架是用来干什么的,具体我们该怎样使用它...iOS CloudKit的使用 这篇文章也就了两个问题,它是什么,它是用来干嘛的。 17、Combine Combine是Apple在2019年WWDC上推出的一个新框架。...蓝牙 iOS中的蓝牙 CoreBluetooth蓝牙系列 官方文档 21、CoreData 这个我就一句话带过,他就苹果提供的数据库,CoreData我以前也有写过关于它的文章,有需要的也可以往前面翻翻

    1.5K11

    EasyDSS虚拟直播出现状态不同步及服务宕机的问题排查与解决

    推流平台EasyDSS里有个直播的类型叫虚拟直播,虚拟直播的直播源有两种类型,一个是点播资源,一个是在线资源。点播资源可以从EasyDSS的点播服务去配置,在线资源必须是直播的源地址。...接入多路虚拟直播时,会概率性出现直播状态不正确的情况,包含虚拟直播的状态和虚拟直播的流量统计问题,并且长时间(单路虚拟直播,多个客户端拉流),会出现服务端崩溃问题。...于是进一步排查发现,由于系统在轮询时,不做判定和现场环境原因,导致虚拟直播状态不同步,经常性中断,也因此导致不断重连致使服务器崩溃。...EasyDSS互联网视频云服务的虚拟直播功能,支持任意网络源信号接入,支持多路信号输入;支持HTTP,RTMP,RTSP等主流协议,支持MP4、MKV、FLV等常见音视频格式。...目前我们也在开发一些智能分析相关的视频服务,如果大家有兴趣可以关注我们的博客,我们将不定期在博客内分享我们的开发经验、疑难解决与解决方案。

    38220

    CloudKit实践

    一、CloudKit简介 CloudKit,是苹果推出的基于iCloud的一个云端数据存储服务,提供了低成本的云存储并能作为一个后端服务通过用户们的iCloud账号分享其应用数据。...CloudKit也具有安全性,为用户的私人数据提供了完整的保护。而开发者不仅只能接入自己的数据库,也不允许查看用户的私有数据。...CloudKit适用于那些在服务端计算量不大,却需要使用大量数据的iOS平台独占应用。 二、分类 CloudKit 的基础对象类型有 7 种。...(事实上,经过开发者授权配置 CloudKit Dashboard 之后,一个应用也可以访问其他应用的 container。)...还是以地理位置签到应用为例,每个地理位置可以包含很多用户在该位置的签到,那么位置与签到之间就形成了这样一种包含式的从属关系。 CKAsset: 即资源文件,例如二进制文件。

    1.8K10
    领券