编辑(我错过了一层细节):每个老师都有一系列的课程。(我也通过验证器运行了 JSON,所以它更容易阅读)假设以下 JSON:
{
"schools": [
{
"schoolID": "01",
"schoolName": "School01",
"teachers": [
{
"name": "Mr. Russell",
"teacherID": "teach01",
"classes": [
{
"className": "History",
"classID": "class01"
},
{
"className": "Civics",
"classID": "class02"
}
]
},
{
"name": "Mrs. Pearl",
"teacherID": "teach02",
"classes": [
{
"className": "English",
"classID": "class05"
},
{
"className": "Poetry",
"classID": "class06"
}
]
}
]
},
{
"schoolID": "02",
"schoolName": "School01",
"teachers": [
{
"name": "Mr. Russell",
"teacherID": "teach05",
"classes": [
{
"className": "Pre-Calc",
"classID": "class10"
},
{
"className": "Calculus",
"classID": "class12"
}
]
},
{
"name": "Mr. Marks",
"teacherID": "teach07",
"classes": [
{
"className": "History",
"classID": "class01"
},
{
"className": "Driving",
"classID": "class20"
}
]
}
]
}
]
}
即,我有一个学校数组,每个学校都包含一个教师数组,每个教师包含一个班级数组。(抱歉,如果 JSON 的确切格式不太正确;这是一个理论模型,因为由于 NDA 的要求,我无法透露真实的模型。实际模型是合理的。)
我需要使用 NSPredicate 和 KVC 对这个集合进行搜索,并获取所有名为“History”的类名。我尝试了几种不同的方式来执行它,但结果是空的。例如:
NSPredicate *pred = [NSPredicate predicateWithFormat:@"ANY schools.teachers.classes.className == %@", @"History"];
但我回来是空的。对于 KVC 可以执行的内容,我正在尝试的内容是否过于复杂?我是否需要遍历每个学校,然后遍历每个老师,然后才能搜索班级名称?或者,如果我想做的事情是可能的,我错过了什么?
谢谢。