我有一個表「存儲」的屬性「名稱」類型的字符串(索引檢查排序查詢和搜索)。 我想執行一個類似於SQL的查詢來查找名稱以子字符串開頭的所有商店。NSPredicate和BEGINSWITH與CloudKit:字段值類型不匹配
所以,我想這個謂詞:
NSPredicate *pred = [NSPredicate predicateWithFormat:@"ANY name BEGINSWITH %@",substring];
CKQuery *query = [[CKQuery alloc]initWithRecordType:@"Store" predicate:pred];
CKQueryOperation *queryOperation = [[CKQueryOperation alloc] initWithQuery:query];
queryOperation.desiredKeys = @[@"name",@"category"];
NSMutableArray *results = [[NSMutableArray alloc] init];
queryOperation.recordFetchedBlock = ^(CKRecord *record) {
[results addObject:record];
};
queryOperation.queryCompletionBlock = ^(CKQueryCursor *cursor, NSError *error) {
//my own code
}
[publicDatabase addOperation:queryOperation];
我有這樣的錯誤:
<CKError 0x1887a540: "Invalid Arguments" (12/1009); "Field value type mismatch in query predicate for field 'name'"> for query : <CKQuery: 0x18882650; recordType=Store, predicate=ANY name BEGINSWITH "mysubstring">
好的謝謝,但我怎麼能執行一個查詢來查找所有與「我的」子字符串「開始」名稱「或」類別「的商店? – 2014-11-17 22:50:16
@John我不確定你是否可以直接做。您可以嘗試全文搜索,如另一個答案所示,或者您可以創建一個新字段,該字段是一個字符串數組。然後,您可以使用ANY:「ANY searchableFields BEGINSWITH%@」,其中searchableFields是記錄中的一個新字段,它是一個包含兩個元素(名稱和類別)的數組。 – 2014-11-18 02:54:18