我有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」} ..... ................... {}) –