我有一个名为NSArray
的{{1}}包含groups
个对象,每个对象都包含NSArray
个对象,而这些对象又继承自QuestionSub
类。
问题类包括一个名为Question
的{{1}}值。这是我想要搜索的字符串。
问题是NSString
包含名为Id
的{{1}},它是对父问题的引用;因此我不能使用QuestionSub
查询NSString
语句,因为它将匹配任何相等的字符串。
我的问题是我的搜索没有返回结果。但是,我似乎找不到正确的查询parent
来获得正确的结果。
这是我的代码:
NSPredicate
这是我ANY
的代表:
答案 0 :(得分:1)
看起来你可以使用字符串比较谓词,你可以试试这个:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"Id CONTAINS[c] %@", guid];
答案 1 :(得分:1)
问题是 filteredArrayUsingPredicate:过滤整个groups数组。因此,任何运算符都会过滤掉包含具有所需Id属性的Question对象的所有子数组。
在您的示例中,您在同一个子数组中有相同的 Id 和父的问题,因此ANY在这里正常工作,并且==和CONTAINS之间没有区别我们的目标。
要获得所需的结果,首先需要将您的群体展平为一维问题数组,然后应用您的谓词。
不幸的是,NSArray类没有提供任何方法来展平多维数组(: