gpt4 book ai didi

ios - iOS 上的 CloudKit 无法获取我想要的所有记录

转载 作者:行者123 更新时间:2023-11-30 11:40:29 29 4
gpt4 key购买 nike

我使用 CloudKit 为我的应用程序获取记录的 api 不再正常工作。它在一两周前才开始这样做。它可以从公共(public)数据库中获取良好的数据,但不能从私有(private)数据库中获取。

例如,我有一个名为“Part”的记录类型,其中包含一些值,其中包括“datestamp”字段。第一次启动应用程序时,它应该使用 CKQueryOperation 获取私有(private)数据库中 Part(和其他)的所有记录,然后在后续启动时,它使用 CKFetchRecordZoneChangesOperation 获取任何新记录。在我的个人 iCloud 帐户中,我有超过 1,000 条这样的记录。但查询操作和获取更改操作只能获取完全相同的 107 条记录,而不能获取更多记录。这不是 resultLimits 的问题,我已经实现了对 CKQueryCursor 的检查。作为实验,我给它一个谓词,仅获取日期为 2018 年 1 月或之后的记录 - 它返回 0 条记录。我的数据库中有另一种记录类型,有 12 条记录,但只有 1 正在同步。

我将同步类设计为跨平台 API。它适用于我的 iOS、macOS 和 tvOS 目标。 macOS 目标同步得很好,即使它逐行使用完全相同的代码。 iOS 和 tvOS 已经运行良好近 2 年了。除了现在使用 NSOperation 子类中的类之外,几乎没有任何变化。我已经在多个 iPhone、iPad、iOS 模拟器实例、iOS 版本、Xcode 版本上进行了尝试。我尝试过其他 iCloud 帐户。我不知道问题是什么。但这个错误阻碍了我发布急需的更新。我想这可能只是苹果在开发环境中的一个错误,并且在公开发布时可以正常工作,但我担心会禁用我的所有用户。

 protocol CloudData {
var privateDatabase : CKDatabase { get }
}

extension CloudData {
var privateDatabase : CKDatabase {
return CKContainer (identifier: "iCloud...").privateDatabase
}
}

final class CloudSync : CloudData {

func initialSync {

...

// Create an operation to fetch all PARTS
let partQuery = CKQuery (recordType: "Part", predicate: NSPredicate(value: true))
let partOperation = CKQueryOperation (query: partQuery)
partOperation.recordFetchedBlock = { partRecords += [$0] }
partOperation.zoneID = zoneID
partOperation.queryCompletionBlock = { cursor, error in

if let cursorObj = cursor {

print("Initial Sync - Cursor Found Parts")

let newOp = CKQueryOperation (cursor: cursorObj)
newOp.recordFetchedBlock = partOperation.recordFetchedBlock
newOp.queryCompletionBlock = partOperation.queryCompletionBlock
self.privateDatabase.add(newOp)

return
}
self.progress.completedUnitCount += 1
print ("Initial Sync - Part Objects Fetched")


}

partOperation.database = privateDatabase

...
}

}

最佳答案

这很可能是 CloudKit 错误,提交错误报告可能是最好的选择。 CloudKit 还不完美。

关于ios - iOS 上的 CloudKit 无法获取我想要的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49343161/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com