Objective c 通过多维数组搜索数据

Objective c 通过多维数组搜索数据,objective-c,multidimensional-array,uisearchbar,Objective C,Multidimensional Array,Uisearchbar,我有一个名为finalArray的NSMutableArray,我在其中添加了名称和图像 [finalArray addObject:@[name, image]]; 在下面的方法中,它通过finalarray进行搜索,但是因为它不需要多维数组,所以它似乎给出了一个错误。如何使用此代码: self.filteredArray = [[finalArray filteredArrayUsingPredicate:predicate] mutableCopy]; 从finalArray获

我有一个名为finalArray的NSMutableArray,我在其中添加了名称和图像

[finalArray addObject:@[name, image]];
在下面的方法中,它通过finalarray进行搜索,但是因为它不需要多维数组,所以它似乎给出了一个错误。如何使用此代码:

    self.filteredArray = [[finalArray filteredArrayUsingPredicate:predicate] mutableCopy];
从finalArray获取所有名称对象?因为这是本代码所期望的:

[[finalArray filteredArrayUsingPredicate:predicate] 
方法:

-(void) searchThroughdata {

    self.filteredArray = nil;
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains [c] %@",self.searchBar.text];


    self.filteredArray = [[finalArray filteredArrayUsingPredicate:predicate] mutableCopy];

            [tableViewData reloadData];



}
如何在finalarray中添加属于名称的图像,并且仍然像现在这样只搜索名称

[[finalArray filteredArrayUsingPredicate:predicate] mutableCopy];

看起来您正试图通过使用数组的相同索引或其他方式将名称和图像相互关联?我说得对吗

如果是这样,那么您真的应该使用一个自定义类来完成这项工作

@interface MyNameImageClass : NSObject

@property NSString *name;
@property UIImage *image;

@end
现在您可以创建对象

MyNameImageClass *object = [MyNameImageClass new];
object.name = theName;
object.image = theImage;
然后将其添加到数组中

[finalArray addObject:object];
尽管如此,你还是需要澄清你的问题。这个问题很令人困惑


如果对象上的图像已更新,则不需要将其重新插入阵列。数组存储对对象的引用,因此数组也将具有更新的值。

我不明白<代码>[finalArray addObject:name]未在数组中搜索。它只是将一个对象添加到可变数组的末尾。多维数组的结构是什么?请你在更高的层次上解释一下你想做什么。请再次检查:)好的,现在有意义:)我的答案仍然有效。使用自定义对象。然后如何从finalArray获取所有object.name值?@user3258468您可以执行
MyNameImageClass*myImg=finalArray[someIndex]
然后
myImg.name
将访问该名称。