gpt4 book ai didi

ios - 使用 NSPredicate 过滤包含字典的数组

转载 作者:行者123 更新时间:2023-11-28 20:03:29 26 4
gpt4 key购买 nike

我有一个名为 charactersAndDescriptions 的数组,其中包含多个数组,并且在每个数组中都有一个具有两个键/值的 NSDictionary。它看起来像这样:

enter image description here

我需要根据键“desc”的值过滤此数组,将其与字符串变量 searchText 进行比较(它应该返回该字符串在 desc 中任何位置存在的结果)。我希望返回的结构与原始结构相同 - 数组中包含一个字典。这是我的代码:

NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"desc contains[c] %@", searchText];
self.resultsArray = [self.charactersAndDescriptions filteredArrayUsingPredicate:resultPredicate];

问题是,self.resultsArray 总是返回 0 个对象。我不明白为什么会这样。我正在看这里的问题,他们只有一个字典数组,但找不到任何嵌套数组。希望大家帮忙,谢谢!

最佳答案

我不确定您是否可以使用单个谓词来完成。但是您可以遍历单个字典数组,过滤它们并将过滤后的列表添加到最终数组中。尝试这样的事情:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"desc contains[c] %@", searchText];
NSMutableArray *finalColletion = [NSMutableArray array];
for (NSArray *temp in self.charactersAndDescriptions) {
NSArray *result =[temp filteredArrayUsingPredicate:predicate];
if([result count] > 0) {
[finalColletion addObject:result];
}
}

关于ios - 使用 NSPredicate 过滤包含字典的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23052089/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com