gpt4 book ai didi

ios - CKError : Query filter exceeds the limit of values: 250 for container

转载 作者:IT王子 更新时间:2023-10-29 05:37:09 33 4
gpt4 key购买 nike

我想从公共(public)数据库中提取大约 500 条“访问”记录。 CloudKit 一次只给你 100 条记录,所以我只使用如下所示的 CKQueryCursor 来获取我想要的所有记录。

func fetchVisits(_ cursor: CKQueryCursor? = nil) {
print("fetchVisits \(cursor)")
var operation: CKQueryOperation!
if let cursor = cursor {
operation = CKQueryOperation(cursor: cursor)
} else {
let query = CKQuery(recordType: "Visit", predicate: NSPredicate(format: "Client IN %@ AND ANY Students IN %@", visitClients, visitStudents))
operation = CKQueryOperation(query: query)
}
operation.recordFetchedBlock = {
(record) in
totalVisits.append(record)
}
operation.queryCompletionBlock = {
(cursor, error) in
if let error = error {
//handle error
} else if let cursor = cursor {
self.fetchVisits(cursor)
} else {
//all done!
}
}
CKContainer.default().publicCloudDatabase.add(operation)
}

我这样调用这个函数:

fetchVisits()

效果很好,它获得了我需要的所有访问。控制台日志

fetchVisits nil
fetchVisits Optional(<CKQueryCursor: 0x174228140; id=4bb7887c326fc719, zone=(null)>)
fetchVisits Optional(<CKQueryCursor: 0x17422a320; id=f67fb25669486da9, zone=(null)>)
fetchVisits Optional(<CKQueryCursor: 0x174228380; id=7e87eb8b7cfe1a74, zone=(null)>)
fetchVisits Optional(<CKQueryCursor: 0x17422cc80; id=e77e47ef2b29c8a4, zone=(null)>)

但现在的问题是我想在按下按钮时刷新,现在它给了我这个错误:

“服务不可用”(6/2022); “请求失败,HTTP 状态代码为 503”; 30.0 秒后重试

这是不言自明的,我想我通过请求区区 500 条记录让服务器不堪重负?所以我等待 30 秒并再次调用该函数,现在我收到了这个错误。

“超出限制”(27/2023); server message = "Query filter exceeds the limit of values: 250 for container

出于某种原因,我无法再次运行该功能。如果我重新启动应用程序,它会再次正常工作,但只是第一次。此问题似乎特定于返回 CKQueryCursor 的任何表。我正在访问的其他表的记录少于 100 条(因此光标为零),我可以多次拉取这些记录而不会出现任何问题。

最佳答案

好吧,我以前见过这个问题,我相信这是 CloudKit 服务器上的错误。根据我的经验,它与复杂的查询有关。

如果您尝试将谓词更改为:

NSPredicate(value: true)

或者甚至通过删除 ANY 部分来简化现有的,这可能足以修复它。

关于ios - CKError : Query filter exceeds the limit of values: 250 for container,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45346613/

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