任何人都知道如何在CloudKit中使用子查询?这是我尝试的代码:
// stringArray is String list in Cloudkit
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SUBQUERY(stringArray, $fS, ANY $fS = %@).@count != 0", targetString];
CKQuery *query = [[CKQuery alloc] initWithRecordType:@"TestRecord" predicate:predicate];
[publicDatabase performQuery:query inZoneWithID:nil completionHandler:^(NSArray *results, NSError *error) {
NSLog(@"%@", results);
}];
但是抓住了CKException并显示了失败的消息Expected key-path in comparison expression: SUBQUERY(stringArray, $fS, ANY $fS = "targetString").@count != 0
任何想法或错误?
答案 0 :(得分:1)
查看有关CloudKit的NSPredicates的文档。 https://developer.apple.com/library/ios/documentation/CloudKit/Reference/CKQuery_class/index.html#//apple_ref/swift/cl/CKQuery
正如您所看到的,它只允许您为完整的NSPredicate类做的一部分内容。不允许使用子查询和聚合(例如。@ count)。