仅在设置中设置为ON的数组中搜索 [英] Search only in array's that set ON in settings

查看:177
本文介绍了仅在设置中设置为ON的数组中搜索的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



现在我循环 dict

   - (void)filterContentForSearchText: b {
NSPredicate * resultPredicate = [NSPredicate
predicateWithFormat:@Name CONTAINS [cd]%@ OR Address CONTAINS [cd]%@,
searchText,
searchText];

searchResults = [NSMutableArray array];

(NSString * akey in dict){

NSLog(@%@,akey);

NSArray * array = [dict objectForKey:akey];

NSArray * matches = [array filteredArrayUsingPredicate:resultPredicate];

if(matches.count> 0){
[searchResults addObjectsFromArray:matches];




$ b

NSLog(@%@ ,akey);

  2013-05-01 11:34:07.256 testApp [5357:907]白色
2013-05-01 11:34:07.262 testApp [5357:907] yellow
2013-05-01 11:34:07.274 testApp [5357:907] Greenyellow
2013-05-01 11:34 :07.275 testApp [5357:907]测试应用程序[5357:907]测试应用程序[5357:907]绿色
2013-05-01 11:34:07测试应用程序[5357:907]紫
2013-05-01 11:34:07.284 testApp [5357:907]蓝
2013-05-01 11:34:07.289 testApp [5357:907]黑
2013-05 -01 11:34:07.291 testApp [5357:907] redB
2013-05-01 11:34:07.294 testApp [5357:907] orange
2013-05-01 11:34:07.299 testApp [5357:907] BlueYellow
2013-05-01 11:34:07.305 testApp [5357:907] Brown
2013-05-01 11:34:07.308 testApp [5357:907] Rose
2013-05-01 11:34:07.312 testApp [5357:907] Gray

一个 NSMutableArray 名为 resultArray ,它收集我的数组在设置中设置ON



NSLog(@%@,resultArray);

  2013-05-01 11:40:46.917 testApp [5378:907](
Green,
Orange,
Blue

如何仅在 resultArray 中搜索?我试过了:
$ b $ p $ n code> NSArray * array = [dict objectForKey:resultArray];



但没有成功。

这个工作只针对一个数组:

  NSArray * array = [dict objectForKey:@Blue]; 

我的数据结构是:

img src =https://i.stack.imgur.com/eCof7.pngalt =数据结构>

解决方案

< (无效)filterContentForSearchText:(NSString *)searchText作用域:(NSString *)作用域
{b


$ b $
NSPredicate * resultPredicate = [NSPredicate
predicateWithFormat:@Name CONTAINS [cd]%@ OR Address CONTAINS [cd]%@,
searchText,
searchText];

searchResults = [NSMutableArray array];

(NSString * akey in dict){

if([resultsArray containsObject:aKey]){

NSArray * array = dict [akey ]。

NSArray * matches = [array filteredArrayUsingPredicate:resultPredicate];

if(matches.count> 0){
[searchResults addObjectsFromArray:matches];
}

}

}

}


I need to search and filter only in array's that set ON in settings.

Now I loop in dict for all array's:

- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope 
{
    NSPredicate *resultPredicate = [NSPredicate
                                    predicateWithFormat:@"Name CONTAINS[cd] %@ OR Address CONTAINS[cd] %@",
                                    searchText,
                                    searchText];

    searchResults = [NSMutableArray array];

    for (NSString *akey in dict) {

        NSLog(@"%@", akey);

        NSArray *array = [dict objectForKey:akey];

        NSArray *matches = [array filteredArrayUsingPredicate:resultPredicate];

        if (matches.count > 0) {
            [searchResults addObjectsFromArray:matches];
        }
    }
}

NSLog(@"%@", akey);

2013-05-01 11:34:07.256 testApp[5357:907] White
2013-05-01 11:34:07.262 testApp[5357:907] Yellow
2013-05-01 11:34:07.274 testApp[5357:907] Greenyellow
2013-05-01 11:34:07.275 testApp[5357:907] Darkblue
2013-05-01 11:34:07.277 testApp[5357:907] Green
2013-05-01 11:34:07.283 testApp[5357:907] Purple
2013-05-01 11:34:07.284 testApp[5357:907] Blue
2013-05-01 11:34:07.289 testApp[5357:907] Black
2013-05-01 11:34:07.291 testApp[5357:907] Red
2013-05-01 11:34:07.294 testApp[5357:907] Orange
2013-05-01 11:34:07.299 testApp[5357:907] BlueYellow
2013-05-01 11:34:07.305 testApp[5357:907] Brown
2013-05-01 11:34:07.308 testApp[5357:907] Rose
2013-05-01 11:34:07.312 testApp[5357:907] Gray

I have a NSMutableArray named resultArray which collect my array's that was set ON in settings

NSLog(@"%@", resultArray);

2013-05-01 11:40:46.917 testApp[5378:907] (
    Green,
    Orange,
    Blue
)

How to search only in resultArray? I tried:

NSArray *array = [dict objectForKey:resultArray];

but without success.

This work only for one array:

NSArray *array = [dict objectForKey:@"Blue"];

My data structure is:

解决方案

Try

- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope 
{
    NSPredicate *resultPredicate = [NSPredicate
                                    predicateWithFormat:@"Name CONTAINS[cd] %@ OR Address CONTAINS[cd] %@",
                                    searchText,
                                    searchText];

    searchResults = [NSMutableArray array];

    for (NSString *akey in dict) { 

        if ([resultsArray containsObject:aKey]) {

            NSArray *array = dict[akey];

            NSArray *matches = [array filteredArrayUsingPredicate:resultPredicate];

            if (matches.count > 0) {
                [searchResults addObjectsFromArray:matches];
            }

        }        

    }

}

这篇关于仅在设置中设置为ON的数组中搜索的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆