NSPredicate 在 Objective C 中查找多个单词

法比奥

我有这段代码可以在字符串中搜索特定单词,例如加拿大波兰墨西哥示例:

  NSString *valueOfUser = @"I want Poland"

   NSPredicate *pred =[NSPredicate predicateWithFormat: @"SELF contains[c] %@", valueOfUser];

    NSArray *arr = @[
                     @"Canada",
                     @"Poland",
                     @"México"
                     ];

    NSArray *filtered = [arr filteredArrayUsingPredicate: pred]; 
// But this array always contain 0 elements

我的错误在哪里?

我想找到一个解决方案,如:

NSString *valueOfUser = @"I want Poland"
filtered[0] -> "Poland"

NSString *valueOfUser = @"I choose Poland and México"
filtered[0] -> "Poland"
filtered[1] -> "México"
伊玛德·阿里

你的查询应该是相反的:valueOfUser CONTAINS[c] SELF,试试这个:

目标 C:

NSString *valueOfUser = @"I want Poland";

NSPredicate *pred =[NSPredicate predicateWithFormat: @"%@ contains[c] SELF", valueOfUser];

NSArray *arr = @[
                 @"Canada",
                 @"Poland",
                 @"México"
                 ];

NSArray *filtered = [arr filteredArrayUsingPredicate: pred];

斯威夫特

        let dataSource = ["Canada","Poland","México"] as NSArray
        let searchString =  "I choose Poland and México"
        let predicate = NSPredicate(format: "%@ contains[c] SELF", searchString)
        let dataArray = dataSource.filter { predicate.evaluate(with: $0) }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章