【发布时间】:2012-02-18 01:08:46
【问题描述】:
我想实现全文搜索,我要做的是:
NSString* start = @"a";
NSString* stop = [start stringByAppendingString:@"zzz"];
NSArray* range = [NSArray arrayWithObjects:[NSExpression expressionForConstantValue:start],[NSExpression expressionForConstantValue:stop],nil];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY keyword.word BETWEEN %@",range];
Start 是可变的,并且会根据我输入的内容而变化(即,如果我输入“cool”,则表示 start=@"cool",stop 将是 @"coolzzz")。
现在这很好用,直到我的输入是数字或数字并且 NSPredicate 不返回任何结果,即使有。
例如,在我的数据中,我有形状为 entry_name 1、entry_name 2 的条目。如果我输入 entry_name,我会得到所有结果,但是一旦我输入 entry_name 1,我就不会得到任何结果。
经过测试,我发现如果我只输入 1,我不会得到任何结果,因此 NSPredicate 不起作用。
如何编写一个过滤所有字符(包括数字)的 NSPredicate?
【问题讨论】:
标签: objective-c ios cocoa-touch nspredicate