2016-06-09 115 views
0

我无法弄清楚如何在我的基于Kinvey的应用程序中建立适当的搜索功能。现在我可以找到与我输入的文字相匹配的值,这就是:Kinvey搜索功能

KCSQuery* query = [KCSQuery queryOnField:@"key" withExactMatchForValue:textField.text]; 

[self.store queryWithQuery:query withCompletionBlock:^(NSArray *objectsOrNil, NSError *errorOrNil) { 

    if (errorOrNil == nil) { 

     [results removeAllObjects]; 
     [results addObjectsFromArray:objectsOrNil]; 

     [self.tableView reloadData]; 
    } 

} withProgressBlock:nil]; 

希望我们可以找到解决方案。提前致谢。

回答

1

你的意思是读取包含“密钥”而不是“密钥完全匹配”的结果吗?

随着KCSQuery(),您可以使用像下面的正则表达式实现它:

let query = KCSQuery(onField: “fieldname”” usingConditional: .KCSRegex, forValue: “Regular expression”) 

此外,使用运营商是指http://devcenter.kinvey.com/ios/guides/datastore#Querying更好地理解查询创建的,修饰等

如果不是在这种情况下,你能否详细说明你的用例以及一个例子?

感谢, Pranav Kinvey支持

+0

我的意思是去取结果,其中的关键包含字符串。例如,在用户名是“John”的情况下,即使搜索字符串只是“Jo”而不是“John”,用户“John”也应显示在结果中。 – Hugo

+0

您可以使用正则表达式创建KCSQuery以实现相同的功能 - 正如我前面提到的那样。 下面是相关的OBJ-C代码: KCSQuery *查询= [KCSQuery queryOnField:@“字段名” withRegex:@‘^定期EXPR’]; 参照你的例子,它看起来像: KCSQuery *查询= [KCSQuery queryOnField:@“username”withRegex:@“^ Jo”]; 这应该会在结果中得到“Joe”,“John” 希望这会有所帮助。 –