在Cloudkit中使用子查询

时间:2014-12-21 06:50:56

标签: ios cloudkit

任何人都知道如何在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

任何想法或错误?

1 个答案:

答案 0 :(得分:1)

查看有关CloudKit的NSPredicates的文档。 https://developer.apple.com/library/ios/documentation/CloudKit/Reference/CKQuery_class/index.html#//apple_ref/swift/cl/CKQuery

正如您所看到的,它只允许您为完整的NSPredicate类做的一部分内容。不允许使用子查询和聚合(例如。@ count)。