草庐IT

cloudKit

全部标签

IOS- swift : OrPredicate in CloudKit results in invalid

我有这个位来检索两个用户之间的所有消息:letuser1="john"letuser2="mark"letpredicateUser1To2=NSPredicate(format:"user1==%@",user1)letpredicateUser2From1=NSPredicate(format:"user2==%@",user2)letpredicateUser2To1=NSPredicate(format:"user2==%@",user1)letpredicateUser1From2=NSPredicate(format:"user1==%@",user2)letpredica

ios - 将 CKServerChangeToken 保存到核心数据

我使用CloudKit和CoreData以及Swift来同步我的数据。因此,我创建了订阅,并在收到通知后从云端获取新数据以更新我的核心数据。这是处理此更新的推荐方法。为了获取数据更改,我可以插入一个CKServerChangeToken来获取新内容。我的问题是如何将token保存到核心数据以供以后获取请求?对于CKRecords,有一种方法可以仅保存元数据,但对于CKServerChangeToken则没有这样的方法。有人有想法吗?最好的问候,Jannik 最佳答案 CKServerChangeToken是一个不透明的数据对象,它继

ios - 使用云工具包将图像上传到icloud会抛出错误ios

我面临一个问题。使用云套件将图像上传到icloud时抛出错误。它抛出以下错误:()当图片没有上传其他数据时,则其他数据上传成功。这里我提供了我用来设置上传图片的代码。varnoteRecord:CKRecord!ifleturl=imageURL{letimageAsset=CKAsset(fileURL:url)print("imageAsset\(imageAsset)")noteRecord.setObject(imageAsset,forKey:"noteImage")} 最佳答案 这是一个特定于用户的问题,在用户在其其中一

ios - 使用 UserRecordID 获取 CloudKit 用户记录

问题是在获取UserRecordID时从UserRecords中获取数据。获取用户ID的方法:post.creatorUserRecordID?.recordName我的用户记录类型包含用户名等列,因此,我需要为具体用户解析它们。有可能吗? 最佳答案 如果我理解你的问题并且你已经有一个CKRecordID。然后您所要做的就是使用您获得的这个CKRecordID获取RecordWithID。letpublicDatabase=CKContainer.defaultContainer().publicCloudDatabasepubli

ios - 不应同时修改和添加对象

我正在从事的项目的一部分涉及管理产品的存储。Storage对象包含StorageShelf对象,它定义了货架的数量。StorageShelf又包含一些其他对象,例如StorageLocation对象,这些对象确定可放在货架上的产品数量。所有这些对象都存在于CoreData中。我还将Storages和StorageShelfs存储在CloudKit数据库中以用于同步目的。如果我在两台iPad上运行我的应用程序,并在其中一台设备上添加一个带有一些架子的存储,它会在另一台设备上接收通知并开始处理它收到的更新。我的应用程序中有一个CloudOperationQueue,其maxConcurre

swift - 从 iOS 10.3 开始,discoverAllIdentities 和 discoverUserIdentity 为 CKUserIdentity.lookupInfo 返回 nil

CKContainer.discoverAllIdentities(completionHandler:),discoverUserIdentity(recordID:-完成处理程序返回CKUserIdentity但.lookupInfo始终为零,即使联系人包含电子邮件、电话等。其他属性,如hasiCloudAccount、userRecordID、nameComponents都很好。这个问题刚刚开始发生在最近的Swift3.1版本中。有谁知道这是否是预期的行为,因为我无法在发行说明中找到任何关于CloudKit更改的引用,但这看起来像是隐私问题。经过进一步调查,这个问题似乎是由于最近

ios - 使用 CKReference 与 CKRecord 的 CloudKit 性能

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

iOS swift : Crash on deleteRowsAtIndexPaths

这个问题在这里已经有了答案:crashondeleteRowsAtIndexPaths(5个答案)关闭7年前。当我从tableView中删除一行时发生崩溃。不确定发生了什么。这是我的代码:functableView(tableView:UITableView,commitEditingStyleeditingStyle:UITableViewCellEditingStyle,forRowAtIndexPathindexPath:NSIndexPath){letitems=days[indexPath.row]self.removeItems(items,indexPath:indexP

ios - 如何更新 CloudKit 中记录类型的字段?

我正在尝试更新CloudKit中的现有记录,但我正在创建新记录而不是更改值!这是代码:funcpairing(phone:String,ctid:String){ctUsers=[CKRecord]()print("THEPHONEIS:\(phone)\n")letpublicData=CKContainer.default().publicCloudDatabaseletpredicate=Predicate(format:"phone==%@",phone)letquery=CKQuery(recordType:"Elder",predicate:predicate)public

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

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