Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在具有特定文本的词典中筛选NSDictionary_Iphone_Objective C_Nsarray_Nsdictionary_Nspredicate - Fatal编程技术网

Iphone 在具有特定文本的词典中筛选NSDictionary

Iphone 在具有特定文本的词典中筛选NSDictionary,iphone,objective-c,nsarray,nsdictionary,nspredicate,Iphone,Objective C,Nsarray,Nsdictionary,Nspredicate,我得到了一个web服务repsonse,它是一个字典数组。每个字典都有对象,其值本身就是另一个字典。我需要在这个响应中实现搜索,比如如果我输入“technology”并进行搜索,我应该从数组中获取那些字典,该数组具有“该字典中的任何技术”,是否有解决方案进行排序 { key1 = { 0 = { "id" = 608; "b" = "Apple-Iphone"; }; 1 =

我得到了一个web服务repsonse,它是一个字典数组。每个字典都有对象,其值本身就是另一个字典。我需要在这个响应中实现搜索,比如如果我输入“technology”并进行搜索,我应该从数组中获取那些字典,该数组具有“该字典中的任何技术”,是否有解决方案进行排序

     {
         key1 =         {
    0 =             {
    "id" = 608;
    "b" = "Apple-Iphone";
     };
    1 =             {
    "id" = 609;
    "b" = "Iphone";
    };
    2 =             {
    "id" = 610;
    "b" = "Show Text";
    };

    };
    key2 = "Technology resources";
    "key3" =         {
    0 =             {
    "id" = 1608;
    "b" = "I love reading";
    };
    1 =             {
    "id" = 1609;
    "b" = "I prefer iphone to others";
    };
    2 =             {
                "id" = 1610;
                "b" = "Mobile technology is great.I am happy to a be developer";
            };

        };

        "key4" = "Mobile technology is the fun";
}
这是第一种方法

    NSMutableDictionary *dict;
    NSArray *allKeys = [dict allKeys];
    for (NSString  *key in allKeys)
    {
        NSDictionary *innerDict = [dict objectForKey:key];

        NSArray *allInnerKeys = [innerDict allKeys];
        for (NSString  *innerKey in allInnerKeys)
        {
            NSDictionary *mostInnerDict = [dict objectForKey:innerKey];
            NSString *b = [mostInnerDict objectForKey:b];
            NSString *search = @"Technology";
            NSString *sub = [b substringFromIndex:NSMaxRange([b rangeOfString:search])];
            if(sub)
            {
                // ADD mostInnerDict Object to your Results Array
            }

        }
    }
或者你可以试试更简单的方法

获取NSDATA中的响应

将NSDATA转换为NSString


在NSSTRING中搜索子字符串

谢谢,我想什么问题没有被正确提及,就像我输入“technology”一样,我应该得到所有那些主字典,它们都有technology作为任何键的值。