我想在我正在开发的应用程序中介绍CloudKit的用法。作为第一步,当某些记录被插入公共(public)数据库时,我将使用它来处理推送通知。因此,在我的应用程序中,我会为我想要监控的每种记录类型创建一个CKQuerySubscription。我的问题是:续订这些订阅的最佳策略是什么?在测试时,我注意到我的开发容器出现了几次困惑,我不得不重新设置它以使订阅行为正常。Apple没有在文档中说明任何内容,那么什么时候应该删除现有订阅并重新创建它呢?由于随着时间的推移,订阅的通知信息可能会发生变化,所以我想在每次内部版本号不同时重新创建所有订阅。这是避免弄乱容器的生产版本的好方法吗?
我收到一个关于CloudKit查询的非常普遍的错误。我不确定如何修复它。有人有什么建议吗?错误是Erroroccurred.Error=我的代码是:overridefuncviewDidLoad(){super.viewDidLoad()letdatabase=CKContainer.defaultContainer().publicCloudDatabaseletcontainer=CKContainer.defaultContainer()letpublicDB=container.publicCloudDatabaseletdata=CKRecord(recordType:"th
我正在尝试使用Cloudkit对复合谓词执行此操作,但Xcode错误显示“意外的表达式”。有人知道我的代码有什么问题吗?感谢任何帮助!letuserRef=CKReference(recordID:userID,action:.None)letpredicateOne=NSPredicate(format:"recordIDIN%@ANDuser=%@",postIDs,userRef)//Ineedalluserpost'sthatmatchtheIDsinthearrayandwheretheuserIDmatchestheIdinthereferencefieldfortheus
我只是尝试删除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
在CloudKit中订阅公共(public)数据库的最佳方式是什么?我有一张人table。每个人都包含一个名字和一个位置。一旦位置发生变化,该位置就会在CloudKit中更新。那部分工作正常。但我无法在有记录更新时收到通知。一些例子会很有帮助,因为我已经研究了可能的选项。我查看了在数据库中保存订阅的选项以及CKModifySubscriptionsOperation选项。目前,我的订阅代码如下所示:letpredicate=NSPredicate(format:"TRUEPREDICATE")letnewSubscription=CKQuerySubscription(recordTy
我正在开发使用CloudKit的Joke应用每个笑话都有一些类别/标签的引用列表。我正在尝试查询所有具有特定标签的笑话。例如,我想找到属于Animal和Doctor类别的所有笑话。现在我尝试了以下代码lettagRecords=tags.map{CKReference(record:$0.record,action:.None)}letpredicate=NSPredicate(format:"tagsCONTAINS%@",tagRecords)letquery=CKQuery(recordType:"Jokes",predicate:predicate)基本上上面所做的是首先创建一
我需要查询记录类型为“事件”的CKRecords。当我调用recordFetchedBlock时,我会将这些记录添加到我的数组中。但是,recordFetchedBlock永远不会被调用。请帮忙!谢谢://TODO:QueryforallEventrecordsvardatabase:CKDatabase=CKContainer.defaultContainer().privateCloudDatabaselettruePredicate=NSPredicate(value:true)leteventQuery=CKQuery(recordType:"Event",predicate:
我不明白为什么我的ckquery不获取用户创建的记录。这是我的代码:@IBActionfuncbrowseMyComplaints(sender:AnyObject){//whoami?CKContainer.defaultContainer().fetchUserRecordIDWithCompletionHandler({userRecordID,erroriniferror==nil{println(userRecordID.description)letquery:CKQuery=CKQuery(recordType:"myComplaint",predicate:NSPred
我正在使用CloudKit并检查是否已创建特定区域。对于这个例子,假设一个区域没有设置,所以CloudKit给我检索了一个CKError。这个CKError有一个名为partialErrorsByItemID的属性,它的类型是[AnyHashable:Error]?代码如下:fileprivatefunccheckIfZonesWereCreated(){letprivateDB=CKContainer.default().privateCloudDatabaseletop=CKFetchRecordZonesOperation(recordZoneIDs:[zoneID1,zoneI
我正在创建一个cloudkittableview。我加载了该应用程序,我的tableview出现了我在CloudKit中的条目。然后我使用我的添加方法insertNewObject将记录添加到云工具包,但这并没有显示在我的TableView中。它只会出现在我下次运行该应用程序时。funcinsertNewObject(sender:AnyObject){letrecord=CKRecord(recordType:"CloudNote")record.setObject("NewNote",forKey:"Notes")MyClipManager.SaveMethod(Database!