首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏肘子的Swift记事本

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

    我们可以利用这一点来设置 NSPersistentCloudKitContainer 的同步状态。 lazy var container:NSPersistentCloudKitContainer = { let container = NSPersistentCloudKitContainer 对于采用了 NSPersistentCloudKitContainer 进行数据同步的应用,当使用者在设备上退出 iCloud 账户、切换账户或者关闭应用的 iCloud 同步功能后,NSPersistentCloudKitContainerNSPersistentCloudKitContainer 默认并不提供保留数据的设计。 如果,你想修改 NSPersistentCloudKitContainer 默认的数据处理行为,可以在创建 NSPersistentCloudKitContainer 实例之前,首先判断 CloudKit

    2.1K20编辑于 2022-07-28
  • 来自专栏肘子的Swift记事本

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

    正常情况的信息 •初始化信息代码启动后,通常首先出现在控制台的便是NSPersistentCloudKitContainer展示的初始化信息。 •持久化历史跟踪信息NSPersistentCloudKitContainer使用持久化历史跟踪来管理导入导出事务,在数据同步信息的左右经常会伴随包含NSPersistentHistoryToken之类的提示 NSPersistentCloudKitContainer会在iCloud账户登录后自动恢复同步。在代码中进行账号状态检查,并提醒用户登录账号。 检查用户账户状态 NSPersistentCloudKitContainer会在iCloud账号可用时自动恢复网络同步。通过代码检查用户的iCloud账户登录情况,在应用程序中提醒用户进行账户登录。 NSPersistentCloudKitContainer提供了一个eventChangedNotification通知,该通知将在import、export、setup三种状态切换时提醒我们。

    1.4K30编辑于 2022-07-28
  • 来自专栏肘子的Swift记事本

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

    NSPersistentCloudKitContainer 在 iCloud 帐户和存储中的数据之间强制执行严格绑定。 但是由于 NSPersistentCloudKitContainer 强制将 iCloud 中的数据绑定到持久存储文件。 我已经成功使用 NSPersistentCloudKitContainer 实现了用户跨设备同步数据,但在共享数据方面的运气要差得多。 NSPersistentCloudKitContainer 和 CloudKit 可以支持比某些限制(如设备存储)多两个数量级的数据。 是否可以显示同步进度并手动触发同步Q:使用 NSPersistentCloudKitContainer 时,是否可以确定当前同步状态或手动触发同步?

    4.7K20编辑于 2023-03-08
  • 来自专栏肘子的Swift记事本

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

    快速指南 在应用程序中启用Core Data with CloudKit功能,只需要以下几步: 1.使用NSPersistentCloudKitContainer2.在项目Target的Signing& let container: NSPersistentCloudKitContainer 启用CloudKit 点击项目中对应的Target,选择Signing&Capabilities。 在现有Core Data项目中添加Host in CloudKit支持 有了模版项目的基础,将Core Data项目升级为支持Core Data with CloudKit也就非常容易了: •使用NSPersistentCloudKitContainer local:Bool(本地数据为true,同步数据为false)•创建两个Configuration——cloud、local,在两个Configuration中都添加上Moive•采用和上面一样的代码,在NSPersistentCloudKitContainer

    2.8K20编辑于 2022-07-28
  • 来自专栏肘子的Swift记事本

    Core Data with CloudKit (一) —— 基础

    如果想获得更好的阅读体验,可以直接访问我的个人博客 www.fatbobman.com[1] 在WWDC 2019上,苹果为Core Data带了一项重大的更新——引入了NSPersistentCloudKitContainer com.apple.coredata.cloudkit.zone的CKRecordZone4.在私有数据库上创建CKDatabaseSubscription•数据导出(将本地Core Data数据导出到云端)1.NSPersistentCloudKitContainer com.apple.coredata.cloudkit.zone中的数据发生变化3.对所有创建CKDatabaseSubscription订阅的设备(同一iCloud账户)分发远程通知•数据导入(将远程数据同步到本地)1.NSPersistentCloudKitContainer

    1.6K30编辑于 2022-07-28
  • 来自专栏肘子的Swift记事本

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

    PersistenceController.shared.containerif container.canUpdateRecord(forManagedObjectWith:item.objectID) { // 修改或删除 itme} 最近两年,苹果不断提升NSPersistentCloudKitContainer 当应用程序启动时或每运行30分钟,NSPersistentCloudKitContainer都会通过CKQurey操作来查询公共数据库的变化并进行获取数据。 Capabilities中添加iCloud•选择CloudKit并添加Container 如果在项目中仅使用公共数据库,可以不添加Background Mode的Remote notifications功能 使用NSPersistentCloudKitContainer 配置仪表台 由于NSPersistentCloudKitContainer对公共数据的获取方式(CKQurey)和对私有数据的获取方式(CKFetchRecordZoneChangesOperation

    2K30编辑于 2022-07-28
  • 来自专栏肘子的Swift记事本

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

    字符串 对于一些特殊类型的Record Type,系统还会增加一些针对性的元数据,比如role,cloud.shared等 本文的主题为Core Data with CloudKit,因此让我们来看一下NSPersistentCloudKitContainer recordName: UUID().uuidString, zoneID: zone.zoneID)) NSPersistentCloudKitContainer } print("save subscription successes:\(subscription)") } image-20210809154503445 NSPersistentCloudKitContainer

    1.3K20编辑于 2022-07-28
  • 来自专栏肘子的Swift记事本

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

    A:尚不清楚此工作流程是否会向 NSPersistentCloudKitContainer 生成推送通知。如果你重新启动应用程序,应该会看到更改。 如何确定是否已同步完成Q:我正在使用 NSPersistentCloudKitContainer,并想改善设备初次从 iCloud 上下载数据时的用户体验。有没有办法告诉用户数据已完成同步? 我知道 NSPersistentCloudKitContainer.eventChangedNotification,但它似乎没有真正的方式来告诉应用同步何时完成。

    4.7K20编辑于 2023-03-08
  • 来自专栏肘子的Swift记事本

    掌握 Core Data Stack

    fatalError("❌数据库 momd 文件无法解析") } return model } public lazy var persistentContainer: NSPersistentCloudKitContainer = { let container = NSPersistentCloudKitContainer( name: modelName, managedObjectModel

    1.2K30编辑于 2022-07-28
  • 来自专栏肘子的Swift记事本

    SwiftUI 与 Core Data —— 问题

    的操作,并在协调器上提供了响应变化的 API数据的批量操作允许开发者跳过上下文,直接从协调器上对持久化存储进行批量操作Core Data with CloudKit几乎不需对核心代码做调整,新增了 NSPersistentCloudKitContainer

    1.2K40编辑于 2023-03-08
领券