nspredicate iphone问题

时间:2011-08-02 21:51:12

标签: objective-c xcode ios4 nspredicate

我有以下代码

NSPredicate* predicate = [NSPredicate predicateWithFormat:@"Word== %@", randomWord];
rows = [[courseArray filteredArrayUsingPredicate:predicate]retain];

我在搜索栏中使用它。我有两个问题 - 我如何制作NSPredicate所以它需要从键入的字符开始,而不是使值等于另一个?例如,我在阵列中有“男人,很多人,男人,现在,从不”,当我输入“M”时,我想要添加“男人,许多人,更多人”。此外,我如何预测超过1个值?所以它比较两种格式?

感谢...

4 个答案:

答案 0 :(得分:1)

尝试 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"Word BEGINSWITH %@", randomWord];

如果您想搜索整个单词,可以尝试CONTAINS ..

答案 1 :(得分:1)

NSPredicate文档是一个很好的起点。

检查字符串是否以另一个字符串开头的谓词是[NSPredicate predicateWithFormat:@"Word BEGINSWITH %@"]

就检查两个谓词而言,您正在寻找NSCompoundPredicate

答案 2 :(得分:1)

您需要创建要比较的所有谓词,并将所有谓词附加到数组。之后,您可以将NSCompoundPredicate用于orand条件。

像那样

NSPredicate *finalPredicate = [NSCompoundPredicate andPredicateWithSubpredicates:@[[NSPredicate predicateWithFormat:@"is_neutered = 0"],
    [NSCompoundPredicate orPredicateWithSubPredicates:feedDays]]];

答案 3 :(得分:0)

http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/Predicates/Articles/pCreating.html

在String Constants,Variables和Wildcards部分下查找'Prefix'部分。