【发布时间】:2015-05-31 04:14:04
【问题描述】:
我正在开发实现 cloudkit 的 iOS 应用程序,但我需要查询 ID 大于数字的所有记录。例如我有 ID 为 23 的记录:
这是我的代码:
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 的所有记录吗?
非常感谢您的帮助。
【问题讨论】:
-
为什么要与记录ID进行比较?
-
@AminNegm-Awad 因为我需要 ID 大于 23 或任何给定数字的所有记录
-
好的,为什么需要 ID 大于给定数字的记录? ID 是一个 ID,没有属性。
-
@AminNegm-Awad 这正是我试图做的,但确实奏效了。 "recordID.recordName"
-
我没有说你应该做点什么。所以你不能做,我打算做的。你去了 SO 来解决你的问题。如果你回答问题,事情就会变得更容易。再说一遍:为什么需要 ID 大于给定数字的记录?
标签: ios objective-c cloudkit ckquery