ios - 用两个字符串过滤字典数组

标签 ios objective-c json nspredicate

对于搜索下拉表,我需要分别在单元格文本标签和详细文本标签中显示“描述”和“搜索条款”。我需要实现基于两个字符串的过滤器,即搜索文本应该与“Description”和“SearchTerms”进行比较。我试过 NSPredicate 但它只能过滤一个字符串

NSString *substring = [NSString stringWithString:searchServiceTextField.text];
NSLog(@"substring %@",substring);
NSMutableArray *arr2Filt= [searchArray valueForKey:@"Description"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF  contains[c] %@",substring];
NSArray *filteredarr = [NSMutableArray arrayWithArray:[arr2Filt filteredArrayUsingPredicate:predicate]];
NSLog(@"filtered array %@",filteredarr);

我尝试修改两个字符串,但没有得到更好的解决方案。

  [{
        Description = "Rental Jewellery, Jewellery for events";
        ProfessionId = "<null>";
        SKUFormat = "<null>";
        SearchTerms = "Rental Jewellery";
        SpecialityId = 62;
        tokens = "<null>";
        value = "<null>";
    },
    {
        Description = "Kids Party with Food and Games Venues";
        ProfessionId = "<null>";
        SKUFormat = "<null>";
        SearchTerms = "Party Venue";
        SpecialityId = 63;
        tokens = "<null>";
        value = "<null>";
    },
    {
        Description = "Music, Dance, Sports classes";
        ProfessionId = "<null>";
        SKUFormat = "<null>";
        SearchTerms = Classes;
        SpecialityId = 64;
        tokens = "<null>";
        value = "<null>";
    },
    {
        Description = "Zumba, Yoga, Aerobics classes";
        ProfessionId = "<null>";
        SKUFormat = "<null>";
        SearchTerms = "Fitness/Health";
        SpecialityId = 65;
        tokens = "<null>";
        value = "<null>";
    }
    ]

最佳答案

你可以这样做

NSString *substring = [NSString stringWithString:searchServiceTextField.text];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"Description contains[c] %@ AND SearchTerms contains[c] %@",substring, substring];
NSArray * filteredarr =[[searchArray filteredArrayUsingPredicate:predicate] copy];

NSLog(@"filtered array %@",filteredarr);

关于ios - 用两个字符串过滤字典数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37630285/

相关文章:

ios - 点击时如何在 UICollectionViewCell 中制作此动画?

objective-c - 你能通过 dismissModalViewControllerAnimated : or do you need a segue for the return journey? 返回数据吗

通过对象的 JavaScript 值求和

javascript - jquery中从json数组中分割json数据

json - 通过 Cloudformation 创建 AWS::ECR::Repository 资源

ios - 如何使用共享初始化方法初始化 let 变量?

android - Xamarin 是否足以开发社交平台应用程序?

ios - Swift 应用程序开发错误 - 线程 1 信号 SIGABRT

objective-c - 使用 va_list 获取 EXC_BAD_ACCESS

ios - UITableViewController 内的 UINavigationBar