gpt4 book ai didi

objective-c - 如何创建一个 NSPredicate 来过滤给定范围内的所有字符,包括数字/数字?

转载 作者:行者123 更新时间:2023-11-29 04:47:58 25 4
gpt4 key购买 nike

我想实现全文搜索,我所做的是:

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];

开始是可变的,并且会根据我输入的内容而变化(即,如果我输入“cool”,则意味着开始=@“cool”,停止将是@“coolzzz”)。

现在这一切都很好,直到我的输入是数字或数字并且 NSPredicate 不返回任何结果,即使有。

例如,在我的数据中,我有形状为entry_name 1、entry_name 2的条目。如果我输入entry_name,我会得到所有结果,但一旦我输入entry_name 1,我就不会得到任何结果。

经过测试,我发现如果我只输入 1,我不会得到任何结果,因此 NSPredicate 不起作用。

如何编写一个 NSPredicate 来过滤包括数字在内的所有字符?

最佳答案

您不需要为 BETWEEN 运算符创建范围,一个简单的数组就足够了:

NSString* start = @"a";
NSString* stop = [start stringByAppendingString:@"zzz"];
NSPredicate *betweenPredicate = [NSPredicate predicateWithFormat: @"attributeName BETWEEN %@",
[NSArray arrayWithObjects:start, stop, nil]];

另请参阅Predicate Programming Guide

关于objective-c - 如何创建一个 NSPredicate 来过滤给定范围内的所有字符,包括数字/数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9337561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com