草庐IT

CKRecord

全部标签

从ckrecord获取ckrecordzone

设想:我有一个CKRecord我从服务器中获取的。该记录存在于我为此的自定义区域内不是知道标识符,没有CKRecordZone对象的。我需要打电话CKDatabase.perform(query:inZoneWith:completion:)要获取数据库中的记录,该记录是root共享记录的组件(需要调用)CKRecordZoneID(来自aCKRecordZone)我被迫迭代每个CKRecordZone在共享数据库中并执行查询,直到找到匹配记录为止。总结:我想参加CKRecord并找到CKRecordZone它存在。这可能吗?或者我的方法有缺陷吗?我可以执行query没有CKRecordZon

ios - 如果在客户端生成 CKRecordID.recordName 有什么缺点吗?

如果在客户端生成recordName,可以提供更流畅的用户体验。varuuid=NSUUID().UUIDString你知道这样做有什么坏处吗? 最佳答案 recordName始终在客户端生成。如果您的应用程序未提供recordName,CloudKit框架将在将其发送到服务器之前在客户端生成一个UUID。与让CloudKit框架为您生成UUID相比,在您自己的代码中生成UUID并没有加速。客户端创建的recordName可以帮助您的应用程序将CloudKit记录映射到您自己的本地数据存储。如果您不需要这样做,那么您可以将其留给Cl

ios - 如何在创建新记录时使用 CloudKit 不延迟地更新 TableView 中的数据

我的应用程序中有2个ViewController。第一个“MainViewController”显示一个tableView,其中包含从私有(private)CloudKit数据库获取的CKRecords字段。在此VC的viewWillAppear方法中,我从CloudKit获取记录并重新加载TableView的数据以显示用户先前保存在CloudKit中的最新获取结果。第二个ViewController“CreateRecordViewController”用于创建CKRecords并将它们保存到CloudKit的私有(private)数据库中。所以我在CreateRecordViewC

ios - 如何用 zoneID 和 recordID 初始化 CKRecord?

我目前正在构建一个将CoreData记录同步到CloudKit的解决方案。我需要帮助来确定我想用CKRecord做什么是可行的。我已经查看了AppleCloudKit文档、进行了试验并在网上进行了搜索,但没有找到我想要的那种答案。我想用zoneID和recordID来初始化CKRecord,我将在init方法中提供它们。初始化程序似乎迫使我在两者之间做出选择。我想要创建我自己的ZoneID(不使用默认值),并设置recordID而不是让它自动生成。这可能吗? 最佳答案 您可以同时指定区域ID和记录ID,但需要分三步完成:首先,使用您

ios - 通过 CKSubscription 观察 CKRecord 删除不起作用

CKSubscription文档说:当记录修改导致订阅触发时,服务器会向所有订阅该订阅的设备发送推送通知,但进行原始更改的设备除外记录。假设我有两台设备:device1和device2从不同的iCloud帐户登录。假设两个设备都订阅了某种记录类型的记录删除。如果device1创建了一条记录,然后device1删除了它,然后device2得到通知-这是根据文档,但是..如果device1创建了一条记录,然后device2删除了它,那么device2会收到通知-我不认为这是根据该文档没有任何意义,device2删除了它,因此应通知device1在设备1和设备2上设置订阅funcapplic

ios - 删除 CKRecord : Record delete would violate validating reference, 拒绝更新

我只是尝试删除CKRecord。在我将其分配为父级并引用另一个这样的ckrecord之前:letrID=CKRecordID(recordName:territory.identifier,zoneID:territory.recordZoneID)letrecord=CKRecord(recordType:"Territory",recordID:rID)ifletterritoryGroup=territoryGroup{letrecordID=CKRecordID(recordName:territoryGroup.identifier,zoneID:CloudAssistant

ios - 使用 CKReference 与 CKRecord 的 CloudKit 性能

假设我有一个CKRecord的recordType帖子。帖子包含一些值,例如标题和描述。当应用程序中显示帖子时,它会附有撰写该帖子的用户(我们称他们为作者)的姓名和头像。我的问题是-将CKReference存储到作者个人资料(个人资料是保存作者详细信息的另一种类型的记录)会更好,还是直接将作者的详细信息添加到帖子中会更好他们什么时候写的?从数据库架构的角度来看,第一个选项非常合理,但从性能的角度来看,它似乎真的很糟糕。这个系统上有成千上万的用户,加载它们的提取量和时间似乎都不合理。第一部分涉及加载所有帖子。funcloadPosts(){//...Setupthequerypublic

Swift/CloudKit : After record changed, 上传触发器 "Service Record Changed"

我正在尝试将CKReference添加到云工具包中的记录,但尝试不断触发“服务记录已更改”。从我的println显示的控制台消息(下面的控制台消息和代码),我正在上传带有0个引用的记录,然后当我附加引用时,我看到尝试上传带有1个引用的记录。然后我收到错误。据我所知,不应触发“服务记录已更改”,因为引用列表中的值已更改(记录有一个完整的额外字段)。即使我在开发模式,我手动为ReferenceList创建了key-value字段,因为当referencelist为空时,第一次上传的记录不包括该字段(上传空数组会导致另一个错误)。我将在控制台消息之后按照相关性顺序包含代码(您将能够看到大部分

ios - 如何使用 swift 上传带有云工具包的图像?

如何使用swift从云套件上传和加载图像?我使用什么属性类型?我使用什么代码?这是我目前使用的代码...funcSaveImageInCloud(ImageToSave:UIImage){letnewRecord:CKRecord=CKRecord(recordType:"ImageRecord")newRecord.setValue(ImageToSave,forKey:"Image")ifletdatabase=self.privateDatabase{database.saveRecord(newRecord,completionHandler:{(record:CKRecord

ios - CloudKit:获取具有特定记录类型的所有记录?

我目前已经在我的应用程序中设置了CloudKit,因此我可以借助下面的代码添加一条新记录,CKRecordID*recordID=[[CKRecordIDalloc]initWithRecordName:@"stringArray"];CKRecord*record=[[CKRecordalloc]initWithRecordType:@"Strings"recordID:recordID];[recordsetObject:[NSArrayarrayWithObjects:@"one",@"two",@"three",@"four",nil]forKey:@"stringArray"