我有3 NSMutableArray
s的大小相同。他们是“联系在一起”,这意味着对于相应的索引他们有一些相互关联的东西。过滤NSMutableArray的基础上过滤另一个NSMutableArray
tableData = [NSMutableArray arrayWithObjects:@"Egg Benedict", @"Mushroom Risotto", @"Full Breakfast", nil]
thumbnails = [NSMutableArray arrayWithObjects:@"egg_benedict.jpg", @"mushroom_risotto.jpg", @"full_breakfast.jpg",nil]
prepTime = [NSMutableArray arrayWithObjects:@"10min", @"15min", @"8min",nil]
这来自我正在玩的教程。
我过滤资料表阵列是这样的:
NSPredicate *resultPredicate = [NSPredicate
predicateWithFormat:@"SELF contains[cd] %@",
searchText];
searchResultsData = [[tableData filteredArrayUsingPredicate:resultPredicate] mutableCopy];
其中searchText
是包含过滤器(例如“蛋”)的字符串。 这很好,我的意思是我有正确的过滤。 (searchResultsData
是另一个NSMutableArray) 我需要做的是根据从上面的NSPredicate
得到的结果过滤另外两个NSMutableArray
。
所以我创建了另外两个叫做“searchResultThumbnails”和“searchResultPrepTime
”的NSMutableArray
。 我在期待这个:如果我使用单词“egg”进行过滤,我希望第一个包含“tableData
”数组中的“egg”的元素(在这种情况下只有一个元素)以及索引处的缩略图和preptime中的对应元素阵列。
因此,与“蛋”滤波后的结果应该是:
searchResultData = "Egg"
searchResultThumbnails = "egg_benedict.jpg"
searchResultPrepTime = "10min"
谢谢您的帮助。
考虑使用一个字典数组或更好的 - 具有适当属性的自定义类对象 – vadian
并行数组是从面向对象编程前几天开始的保留。他们现在很容易出错,现在也不行。 (如果**绝对必须**这样做,请将'searchResultsData'中的每个项目,在tableData中找到它的索引,并使用这些索引在其他主数组中找到对象以填充搜索数组...但它仍然是一个坏主意:)) –
支持@stklieme评论,您的字典数组可能会像({searchResultData =“Egg” searchResultThumbnails =“egg_benedict.jpg” searchResultPrepTime =“10min”} ..... ................... {}) –