gpt4 book ai didi

ios - CloudKit : CKQuery showing error: error: The operation couldn’t be completed.(CKErrorDomain 错误 1。)

转载 作者:行者123 更新时间:2023-11-29 12:21:18 28 4
gpt4 key购买 nike

我正在开发实现 cloudkit 的 iOS 应用程序,但我需要查询 ID 大于某个数字的所有记录。例如我有 ID 为 23 的记录:

enter image description here

这是我的代码:

CKContainer *myContainer = [CKContainer containerWithIdentifier:containerID];

CKDatabase *publicDatabase = [myContainer publicCloudDatabase];


CKRecordID *recordID = [[CKRecordID alloc] initWithRecordName:@"23"];
CKReference* recordToMatch = [[CKReference alloc] initWithRecordID:recordID action:CKReferenceActionNone];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"recordID >= %@", recordToMatch];
CKQuery *query = [[CKQuery alloc] initWithRecordType:recordType predicate:predicate];

[publicDatabase performQuery:query inZoneWithID:nil completionHandler:^(NSArray *results, NSError *error) {
if (error) {

NSLog(@"error: %@", error.localizedDescription);
}
else {

}
}];

但我收到以下错误:

错误:错误:操作无法完成。 (CKErrorDomain 错误 1。)

你们中的任何人都知道如何设置我的 NSPredicate 以获取 ID 大于 23 的所有记录?

非常感谢您的帮助。

最佳答案

对于这样的查询,您可以使用如下谓词:

在 swift 中:

var predicate = NSPredicate(format: "recordID >= %@", CKRecordID(recordName: "23"))

在 Objective-C 中:

 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"recordID >= %@", [CKRecordID initWithRecordName:@"23"]];

然后我假设您最初是在指定此编号时创建了 CKRecords 对象。否则 recordID 值将由 CloudKit 分配,并且将是一个 GUID。

关于ios - CloudKit : CKQuery showing error: error: The operation couldn’t be completed.(CKErrorDomain 错误 1。),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30553772/

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