Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.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
Ios 如何访问某些值中的一个值_Ios_Nspredicate - Fatal编程技术网

Ios 如何访问某些值中的一个值

Ios 如何访问某些值中的一个值,ios,nspredicate,Ios,Nspredicate,大家好,, 我有一个类似这样的json。我的意思是我有一个内容,所有电影都有它们的类型。我需要做一个分类。例如,我需要检查哪种类型的电影是恐怖片。或者哪种类型的电影是惊悚片。我得到的所有价值如下: -->恐怖电影 但是我怎样才能控制这部电影的类型是否包括恐怖片呢?你的建议是什么 谢谢您可以使用由字符串分隔的组件 { "id"=12 "genres_en" = "thriller,movies,action"; } { "id"=13 "genres_en" = "thriller,horror"

大家好,, 我有一个类似这样的json。我的意思是我有一个内容,所有电影都有它们的类型。我需要做一个分类。例如,我需要检查哪种类型的电影是恐怖片。或者哪种类型的电影是惊悚片。我得到的所有价值如下:

-->恐怖电影 但是我怎样才能控制这部电影的类型是否包括恐怖片呢?你的建议是什么


谢谢

您可以使用
由字符串分隔的组件

{
"id"=12
"genres_en" = "thriller,movies,action";
}
{
"id"=13
"genres_en" = "thriller,horror";
}

我附近没有Xcode,因此以下代码可能包含一个错误(或两个:))

试着这样做:

NSDictionary *dic = PARSE The JSON;

NSString *values = [dic objectForKey:"genres_en"];
NSString *firstValue = [[values componentsSeparatedByString:","] objectAtIndex:0];

希望它有帮助

您可以尝试检查字符串是否包含所需的子字符串。像这样:

NSDictionary *yourDict = //your parsed json
NSString *genres = [yourDict objectForKey:@"genres_en"];
if ([genres rangeOfString:@"horror"].location != NSNotFound) {
  return YES;
} else {
  return NO;
}
或者,更好的方法是获取类型数组

NSString *typesString = [dic objectForKey:"genres_en"];
NSRange range = [typesString rangeOfString:@"horror"];
if(range.location != NSNotFound)
{
    //it contains the substring "horror"
}
现在,您可以为每个条目存储此数组,并且每当您想要检查它是否属于某个性别时,只需循环遍历(每个条目的)类型数组并比较字符串

希望这有帮助

干杯

for(int j=0;jNSArray *types = [[typesString componentsSeparatedByString:","];
{ NSString*值=[[GREEP Components由字符串分隔:@“,“]objectAtIndex:j]; if([值IsequalString:@“movies”]) { [genreMovies addObject:value]; } }
谢谢你们的帮助。现在我有了我的结果:)

使用这个解决方案,有必要运行
for循环
来查找@“恐怖”(或任何其他类型)是的,我以前喜欢这样做:NSDictionary*dic=解析JSON;NSString*值=[dic objectForKey:“流派”];NSString*firstValue=[[values componentsSeparatedByString:,“]objectAtIndex:0];但问题是有些数组有2个值,有些数组有3个,有些数组有1个值,这会产生错误吗?例如,我无法访问所有类型的恐怖片并进行分类?@santa你到底想要什么?你得到了什么?您的json解析是否正确?请注意,这一行
[genre components separatedbystring:@“,”
每次都会给您相同的结果,但您执行它
GenresArray.count
次。如果字符串很小,这不是问题,但是如果字符串很长,可能会出现性能问题。最好在for循环之前只获取一次此数组。
 for(int j=0;j< GenresArray.count; j++)
                {  
                    NSString *value=[[genre componentsSeparatedByString: @","]objectAtIndex:j];

                    if([value isEqualToString:@"movies"])
                    {
                        [genreMovies addObject:value];
                    }
                }