2014-12-21 2 views
0

Кто-нибудь знает, как использовать подзапрос в CloudKit? Вот мой код пытается:использовать подзапрос в Cloudkit

// stringArray is String list in Cloudkit 
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SUBQUERY(stringArray, $fS, ANY $fS = %@)[email protected] != 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")[email protected] != 0

Любая идея или что-то не так?

+0

Вот что такое $ fS? – Mrunal

+0

string в stringArray – scottphc

+0

Попробуйте с некоторым жестко запрограммированным targetString: SUBQUERY (stringArray, $ fS, ANY $ fS = "AnyStringFromStringArray"). @ Count! = 0 – Mrunal

ответ

1

Посмотрите документацию о NSPredicates для CloudKit. https://developer.apple.com/library/ios/documentation/CloudKit/Reference/CKQuery_class/index.html#//apple_ref/swift/cl/CKQuery

Как вы можете видеть, это разрешает только подмножество того, что вы можете сделать для полного класса NSPredicate. Подзапросы и агрегаты (например,. @ Count) недопустимы.

+0

Спасибо. Я просто нашел тот же контент в заголовке CKQuery. – scottphc

Смежные вопросы