- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
下面简化方法中的 CKFetchRecordChangesOperation 不返回任何记录。我用 nil 调用它,最初获取所有记录,但它只返回服务器 token 。但是,如果我使用 CKQuery,我会正确获取所有记录。
我错过了什么?
func fetchChangedRecords(token :CKServerChangeToken?) {
println("\(__FUNCTION__) token: \(token)")
let zoneID = CKRecordZoneID(zoneName: kMyZone, ownerName: CKOwnerDefaultName)
var op = CKFetchRecordChangesOperation(recordZoneID: zoneID, previousServerChangeToken: token)
op.recordChangedBlock = {
record in
println("\(__FUNCTION__) record \(record)")
}
op.recordWithIDWasDeletedBlock = {
recordID in
println("\(__FUNCTION__) record \(recordID)")
}
op.fetchRecordChangesCompletionBlock = {
serverChangeToken, clientChangeToken, error in
println("\(__FUNCTION__) server token \(serverChangeToken), clientChangeToken \(clientChangeToken)")
if let err = error {
println("\(__FUNCTION__) Error: \(err)")
}
if op.moreComing {
println("\(__FUNCTION__) moreComing")
self.fetchChangedRecords(serverChangeToken)
}
}
println("\(__FUNCTION__) op \(op)")
privateDB.addOperation(op)
}
编辑:
因此,我根据 moreComing 的值使用额外的方法调用更新了代码。下面是打印的内容。我还检查了该区域是否存在。
moreComing好像没有设置。
fetchChangedRecords token: nil
fetchChangedRecords op <CKFetchRecordChangesOperation: 0x16dd3e30; operationID=14A302B7-2718-4E05-97C7-B28EC01ED75B>
fetchChangedRecords server token <CKServerChangeToken: 0x16ddfd80; data=AQAAAAAAAAACf/////////+p9bdUdAhLUK36bhza7+4g>, clientChangeToken nil
只是为了表明该区域在那里。
zone fetching succeeded [<CKRecordZone: 0x16dda330; zoneID=MyZone:__defaultOwner__, capabilities=(Atomic,Sync)>, <CKRecordZone: 0x16d5bb70; zoneID=_defaultZone:__defaultOwner__, capabilities=(none)>]
最佳答案
看起来 CKFetchRecordChangesOperation
已弃用。我认为它可能已被 CKFetchDatabaseChangesOperation
和 CKFetchRecordZoneChangesOperation
取代? CKFetchDatabaseChangesOperation
在 2016 WWDC Best Practices 中讨论, 但它是在共享数据库的上下文中。
关于ios - CKFetchRecordChangesOperation 不返回任何记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29140726/
下面简化方法中的 CKFetchRecordChangesOperation 不返回任何记录。我用 nil 调用它,最初获取所有记录,但它只返回服务器 token 。但是,如果我使用 CKQuery,
当 previousServerToken 为 null 时,CKFetchRecordChangesOperation 似乎需要多次通过才能下载第一组数据,重试直到 moreComing 标志被清除
changesOperation.fetchRecordChangesCompletionBlock = ^(CKServerChangeToken *serverChangeToken, NSDat
我在我的应用程序中使用 CloudKit,它似乎运行良好。但是,当我在新设备上初始化应用程序时,使用 CKFetchRecordChangesOperation *fetchRecordChanges
我正在开发一个启用了 CloudKit 的应用程序和一个使用 CloudKit 与 iCloud 同步的本地 CoreData 缓存。我正在使用 CKFetchRecordChangesOperati
我的问题与 WWDC 2014 Advanced CloudKit 中命名的“Delta Download”有关。 我正在尝试为我的 Core Data 应用程序进行同步,该应用程序目前仅适用于 iP
CKFetchRecordChangesOperation 是否会从容器中检索所有记录? 我希望它能下载我所有的记录,因为我添加了很多不同的记录类型,但我没有得到一个。我已经用 nil token 初
我是一名优秀的程序员,十分优秀!