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

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

Core Data with CloudKit (六) —— 创建与多个iCloud用户共享数据的应用 如想获得更好的阅读体验,可以访问我的博客www.fatbobman.com 本文中,我们将探讨如何使用...Core Data with CloudKit创建与多个iCloud用户共享数据的应用。...开发者仅需少量的代码,便可以拥有以下功能: •邀请人们查看或协作共享记录•设置访问权限,确定谁可以访问共享记录(只有被邀请的人或有共享链接的任何人)。•设置一般或个别权限(只读或读/写)。...•取消一个或多个参与者的访问权限•停止参与(如果用户是参与者)。•停止与所有参与者共享(如果用户是共享记录的所有者)。...2.共享时,如设置成任何人可接收,尽量不要直接在UICloudSharingController中通过信息、邮件等方式发送到另一个有效的iCloud账户上,否则大概率无法打开该共享链接,会显示共享已取消

1.4K20

Core Data with CloudKit (一) —— 基础

在CloudKit上,结构化的数据存储只有一种类型,但采用了两个维度对数据进行了区分。从用户鉴权角度,CKDatabase分别提供了三种形式的数据库:私有数据库、公有数据库、共享数据库。...应用程序的使用者,可以将部分数据共享给其他的同一个app的使用者,共享的数据将被放置在共享数据库中,共享者可以设置其他用户对于数据的读写权限。...当在应用程序中启用CloudKit后,将在CKContainer创建一个Schema。Schema中包括记录类型(Record Type)、记录类型类型之间可能存在的关系、索引以及用户权限。...该订阅只能用于私有数据库和共享数据库中自定义的CKRecordZone,并只会通知订阅的创建者。在以后的文章中,我们可以看到Core Data with CloudKit是如何在私有库中使用该订阅的。...CKRecordZoneNotification,当用户、或者在某些情况下,CloudKit修改该区域(CKRecordZone)的记录时,记录区的订阅就会执行,例如,当记录中某个字段的值发生变化时。

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

    苹果 iCloud 的“极端”架构:管理数十亿独立用户数据库!

    然而,CloudKit + Cassandra 遇到了两个可扩展性限制,这导致他们采用了 FoundationDB。 在单个区域内,一次只能执行一个操作,即使正在编辑不同的记录也是如此。...对于需要多个用户或设备同时处理共享数据的应用程序来说,这可能会产生问题。 在原子操作中同时更新多个记录时,更新仅限于单个 Cassandra 分区。...多记录存储,共享模式——Record Layer 提供了支持许多离散记录存储实例的能力,所有实例都具有共享(和不断发展的)模式。...Record Layer 用于极端多租户,其中每个应用程序的每个用户都可以获得独立的记录存储。这意味着 Record Layer 承载着数十亿个独立的数据库,共享数千个模式。 那就更好了!...除了用户定义的索引外,CloudKit 还管理着用于内部目的的“系统索引”,例如通过保留按记录类型跟踪记录大小的索引来管理存储配额。

    20410

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

    Core Data with CloudKit(五)——同步公共数据库 本系列一共六篇,如想获得更好的阅读体验可以访问我的博客 www.fatbobman.com[1] 本文将介绍如何通过Core Data...共享数据库 iCloud用户在共享数据库中看到的数据,是其他的iCloud用户共享给你的数据投影,这些数据仍然保存在其他人各自的私有数据库中。...例如你将某条数据共享给某个用户,该数据仍保存在你的私有数据库中,但被共享者由于你的授权可以在他的共享数据库中看到该记录,且只能依据你设定的权限进行操作。 共享数据库中不可以自定义区域。...一样的名词、不一样的含义 在Core Data with CloudKit(二)[2]中,我们介绍了如何同步本地数据库到iCloud私有数据库,本篇我们谈的是如果将共享数据库同步到本地。...image-20210812154950463 •每个用户都可以读取记录(无论是否登录账户)•每个已登录账户的用户都可以创建记录•已登录用户只能修改或删除自己创建的记录 通过标准CloudKit API

    1.5K30

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

    如何禁用/启用网络同步Q:对于想要禁用/启用 CloudKit 存储的用户,是否有推荐的方法让应用程序可以实现此操作。A:不可以。...想了解如何共享数据以及了解当前它的限制请阅读 创建与多个 iCloud 用户共享数据的应用[6] 一文。...运行 initializeCloudKitSchema 方法的时机Q:在使用 Core Data with CloudKit 时,如果我在 Core Data Stack 中编辑持久化存储( 例如,为共享对象添加新的持久化存储...非常希望一个可靠而具体的示例,说明如何安全地清除历史数据以防止磁盘空间浪费。A:清除历史记录是由客户决定的。通常,应用每年或每半年清除一次历史记录。...从用户角度,旧版本将写入新版本从未见过的数据,而新版本将写入旧版本从未见过的数据。您将如何向您的用户解释这种差异?

    2.9K20

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

    •createdTimestamp CloudKit首次将记录保存到服务器的时间•createUserRecordName_creator的用户记录,该记录保存在Users(系统创建)中,每当用户第一次对容器进行身份验证时时系统会为该用户创建用户记录...with CloudKit,因此让我们来看一下NSPersistentCloudKitContainer是如何将Core Data托管对象的属性转换成CloudKit的Recore Type字段的。...Sharing Fallbackd 为低版本操作系统(低于iOS 10、macOS Sierra)提供数据记录共享回调支持。...在提供详尽信息的基础上,CloudKit尽可能地保持用户数据的隐秘性。日志显示每个用户记录的服务器事件,但不暴露任何个人身份信息。仅显示匿名的、特定于容器的CloudKit用户。...AppStoreConnect的分析信息仅来自已同意与 App 开发者共享诊断和使用信息的用户,CloudKit日志信息则来自于你的应用程序中所有使用了CloudKit服务的用户。

    78120

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

    由于该服务对于开发者来说几乎是免费的,因此在之后的几年中,越来越多的开发者在应用中集成了该服务,并为用户带来了良好的跨设备、跨平台的使用体验。...数据权限模块在开启 NSPersistentCloudKitContainer 的同步共享数据库或公共数据库功能后,为了提高数据操作权限的验证效率,该模块会将共享或公共数据库在 iCloud 上对应的原始数据...6本节将根据演示代码对部分实现细节进行说明多个 Container 使用同一个 Data Model在一个应用程序中,Core Data 的 Data Model( 使用数据模型编辑器创建的模型文件 )...如何处理共享数据库和公共数据库的同步鉴于 NSPersistentContainer 并没有提供数据鉴权方面的 API,在你的应用使用了共享数据库或公共数据库同步功能时,可以采用类似如下的方式来处理:import...,屏蔽掉应用中可能导致共享数据库和公共数据库进行修改操作的功能。

    1.5K20

    java微服务架构有哪些_漂浮服务区后端

    CloudKit 提供了基本的数据存储和用户账号管理功能,代表苹果也正式进入BaaS领域。...CloudKit让每款应用都获得一个存放数据库和记录的容器,而这些记录可以被查询,同时应用也可以通过订阅来改变这些数据。CloudKit还同时支持应用的共享及公共数据库,方便开发者完成数据存储工作。...公开的 Database 存放应用内共享的数据,需要开发者自己的 Apple ID 才能修改;私有的 Database 则存放单个用户相关的数据,需要终端用户自己的 Apple ID 才能访问。...CKRecord —— 代表 Database 里面一条结构化记录,是键值对的封装,所以可以存储任何数据。...发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/234733.html原文链接:https://javaforall.cn

    7.4K20

    2020苹果Core ML框架三大更新:更多层类型、模型加密、基于CloudKit模型部署

    ---- 新智元报道 编辑:雅新、舒婷 【新智元导读】今年苹果WWDC全球开发者大会上为我们带来了软硬件的更新。...用户的应用程序中可能有多个模型,模型集合可以将多个模型捆绑在一起,更新时应用程序便会立即更新所有模型。用户可以在CloudKit仪表板上创建这些集合。...应用程序需要先在某个时刻检测到新模型可用,并自动下载该模型,将其放置在应用程序的沙箱中。但是用户无法控制何时或如何发生这种情况,Core ML可能会在不使用手机时在后台执行下载。...从iOS 14 / macOS 11.0开始,Core ML可以自动加密和解密模型,陌生人便不可以窥视用户的mlmodelc文件夹。不管用户有没有新的CloudKit部署,都可以加密。...参考链接: https://machinethink.net/blog/new-in-apple-machine-learning-2020/

    2.1K10

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

    尤其是在 Xcode 14 中,苹果移除了数据模型的关系图编辑器,这一点让我感到非常困惑。...目前已拥有了私有库同步、公共库同步、共享数据等众多功能。可以说,相较于 Core Data 框架本身,苹果在推动 Core Data 云端同步的工作上的成绩是有目共睹的。...不过比较遗憾的是,去年并没有延续这种发展势头,没有继续推出新的功能,也没有对之前出现的一些问题进行改进。 尤其是共享数据这一功能,因为本身 API 的一些不完善,始终没有被开发者广泛采用。...作为开发者,我理解基于成本的考量,官方有意控制了数据同步的频率和数量,但考虑到如此多的应用已将 Core Data with CloudKit 作为其同步框架,苹果是否可以考虑为开发者或用户提供更多的选择...例如,允许开发者或使用者通过额外支付一定的费用获得更好、更快的同步服务。 当然,如果苹果能对 iCloud 服务进行整体的性能升级,让所有的开发者和用户都能免费获得收益,那将是最好的结果。

    47210

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

    在Spotlight中展示应用中的Core Data数据 如果想获得更好的阅读体验,请访问我的博客 www.fatbobman.com[1] 本文将讲解如何通过NSCoreDataSpotlightDelegate...创建这个对象来捕获关于用户正在做什么的信息,如查看应用程序内容、编辑文档、查看网页或观看视频等。...比如,你可以添加缩略图(thumbnailData),或者让用户可以直接拨打记录中的电话号码(分别设置phoneNUmbers和supportsPhoneCall)。...(六) —— 创建与多个iCloud用户共享数据的应用[4]中关于UIWindowSceneDelegate的用法。...(六) —— 创建与多个iCloud用户共享数据的应用: https://www.fatbobman.com/posts/coreDataWithCloudKit-6/ [5] 官方文档: https

    1.4K10

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

    创建可同步Model的注意事项 要在Core Data和CloudKit数据库之间完美地传递记录,最好对双方的数据结构类型有一定的了解,具体请参阅Core Data with CloudKit (一)...不过该对象最多只能支持对应750条记录,无法满足大多数Core Data应用场景的需要,CloudKit采用将Core Data的关系转换成Record Name(UUID字符串形式)逐条对应,这导致CloudKit...Moive记录。...总结 在本文中,我们探讨了如何实现将本地数据库同步到iCloud私有数据库。 下一篇文章让我们一起探讨如何使用CloudKit仪表台。从另一个角度认识Core Data with CloudKit。...引用链接 [1] Core Data with CloudKit (一) —— 基础: https://fatbobman.com/posts/coreDataWithCloudKit-1/ [2] Apple

    2.1K20

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

    在代码中进行账号状态检查,并提醒用户登录账号。 关闭日志输出 在确认同步功能代码已正常工作的情况下,如无法忍受控制台的信息轰炸,可尝试关闭Core Data with CloudKit的日志输出。...2.也可在应用程序首次运行时,利用CKQuerySubscription通过查询特定记录判断网络数据库中是否已有数据(此方法是在前几天和一个网友交流时他采用的方法,不过该网友对返回响应并不满意,用户感知不太好...仪表台[6]一文,我们已经探讨过CloudKit的两种环境设置。...可以考虑以下的模型更新策略: 增量更新 以增量的方式添加记录类型或向现有记录类型添加新字段。 采用这种方式,旧版本的应用程序仍可以访问用户创建的记录,但不是每个字段。...在下一篇文章中,我们聊一下同步公共数据库 引用链接 [1] www.fatbobman.com: http://www.fatbobman.com [2] 在CoreData中使用持久化历史跟踪: https

    73230

    FoundationDB Record Layer: A Multi-Tenant Structured Datastore

    FoundationDB Record Layer 的架构(图片来自论文) FoundationDB Record Layer 在设计上是完全无状态的(stateless),并且是以 library 的方式直接链接到应用程序中...CloudKit 的架构(图片来自论文) 论文中举了一个使用 FoundationDB Record Layer 的例子:苹果公司内部的 CloudKit 框架。...CloudKit 使用 FoundationDB Record Layer 管理数据:一个用户(User)的一个应用(Application)的数据被组织成一个 record store(租户)。...所以,CloudKit 使用 FoundationDB Record Layer 维护的租户数量为:用户数 * 应用数,数量上大概在数十亿级别。...此时,所有前台的写操作(insert/update/delete)都会更新相应的索引。 后台任务异步更新旧记录的索引。 异步更新旧记录的索引完成之后,将索引设置为“读写”。

    1.2K40

    iOS之深入解析Xcode 13正式版发布的40个新特性

    、Vim 键绑定支持、Swift 包集合; 可以在命令行上使用 cktool 与 CloudKit 数据库架构和记录进行交互; 可以在命令行上使用 TextureConverter 将纹理压缩为所有 Metal...六、Core Data 使用 Core Data 模型编辑器的属性检查器中的 Allows Cloud Encryption 复选框来支持 CloudKit 加密记录字段功能。...工具的记录设置现在支持在记录期间为 dynamicTracing 和 dynamicStackTracing 日志记录类别指定 os_signpost 子系统; 新的 CPU Profiler 模板允许使用基于周期的性能监控中断...十四、链接 dyld 共享缓存已拆分为多个文件; 使用 macOS 12 或 iOS 15 或更高版本的部署目标构建的所有程序和 dylib 现在都使用链式修复格式; 统一 dyld2 和 dyld3。...三十八、SKAdNetwork 如果开发者选择接收 winning postback,设备现在可以将 winning postback 的副本发送给广告应用的开发者。

    8.8K40

    专注移动的厂商和开发者必看 IOS8如何靠键盘改变世界

    目前支持的Extension功能包含Custom Keyboard(第三方输入法)、文件汇入(DocumentPicker)、照片编辑(Photo Editing)、分享(Share)、Control...Apple 当然不希望你在这时候却步,有好的创意就应该继续下去,所以推出了CloudKit。...储存在云端的数据库还可以分成Public跟Private使用。Public可以用来作数据共享,如果是匿名登录就只能读取,但如果有登入iCloud账号便可以透过App分享自己的信息。...而Private比较类似iCloud原有的机制,纯粹储存iCloud用户在App里的数据。此外用户也无须担心个资外泄的问题,Apple对于使用者个资做了很好的保护,连开发者本身也无法取得用户信息。...整个会场被讨论最多的就是Swift了,讨论的话题不外乎是Swift本身的特性、如何编写 Swift、如何与原有的Objective-C程序代码整合。

    96640

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

    私有上下文Q:如何配置 Core Data Stack,以便在后台保存更改时,用户可以继续使用应用程序。...我想切换成 Core Data + CloudKit 的方式。当现有用户打开新应用程序时,如何确保现有的本地 @AppStorage 数据被安全地转换到 Core Data + CloudKit 中?...我注意到,当我使用 Safari 客户端从 CloudKit 数据库中删除一条记录时( 通过 CloudKit Dashboard ),该对象仍会保留在设备上的 Core Data 数据存储中。...如何确定是否已同步完成Q:我正在使用 NSPersistentCloudKitContainer,并想改善设备初次从 iCloud 上下载数据时的用户体验。有没有办法告诉用户数据已完成同步?...另外可以考虑使用 CloudKit API 查询云端的数据条数,然后与已经同步到本地的记录数进行比对,获得大致的同步进度( 此方式仅适用于数据模型简单,关系不太复杂的情况 )。

    3.3K20

    不知道真是太可惜了! 下一代终端“Warp”

    什么是Warp Warp 是一个现代化的命令行终端(Terminal),旨在提升开发者的生产力和使用体验。与传统终端不同,Warp 提供了许多增强功能和特性,使其在日常开发和操作中更高效、更直观。...块编辑模式:与传统的逐行编辑不同,Warp 使用块编辑模式,让用户能够像处理文本编辑器中的代码块一样处理命令。这使得编辑、复制和共享命令更加方便。...图形化界面元素:Warp 支持嵌入图形化界面元素,如图表、图片和链接,使其更适合处理复杂数据和结果的可视化。 团队协作:Warp 支持共享命令和会话,使得团队成员能够更轻松地协作和共享知识。...如何安装 有两种方法可以安装它:从 Warp 主页下载或使用 Homebrew。 安装后首次启动时,请使用您的 GitHub 或 Google 帐户登录并回答一个简单的问题以完成注册。...仅关注书签Option + 上下キー(↑↓) 易于阅读的命令历史记录 ↑您只需按 即可查看过去键入的命令列表。 这很方便,因为您可以看到很多过去的东西。

    2.8K10

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

    本文将对这些表和字段进行介绍,或许可以换个角度帮助你解开部分疑惑,例如:Core Data 为什么不需要主键、NSManagedObjectID 是如何构成的 、保存冲突的判断依据是什么。...如何获取 Core Data 的 SQLite 数据库文件 可以通过以下集中方法获取到 Core Data 生成的 SQLite 数据库文件: 直接获取文件的存储地址 在代码中( 通常放置在 Core...如何在数据库中标识关系 Core Data 利用了在同一个数据库中仅需依靠 Z_ENT + Z_PK 即可定位记录的特性来实现了在不同的实体之间标注关系的工作。...Core Data 将创建更多的表来处理与 CloudKit 的同步事宜。考虑到表的复杂性和篇幅,就不继续展开了。不过有了上文的基础,了解它们的用途也并非很困难。...、导入操作日志、待导出数据、Core Data 关系与 CloudKit 关系对照表、本地数据对应的 CKRecordName、本地数据的 CKRecord 完整镜像( 共享公共数据库 )等等信息。

    1.6K20
    领券