我如何在iOS中搜索图像

时间:2014-02-25 06:21:00

标签: ios objective-c uisearchbar

我想在我的应用中使用UISearchBar搜索图像。我在tableViewController中有超过100个图像,每个图像都包含名称和关键字(例如,imageName = u1-1f.png,u1-2f.png,...关键字=债券,碳水化合物)。我想搜索关键字“债券”,它会导致u1-1f.png,等等。我正在使用plist,我从plist到数组获取数据,

NSString *path = [[NSBundle mainBundle] pathForResource:@"keywords" ofType:@"plist"];
NSMutableDictionary *myDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
NSArray* allmyKeys = [myDictionary  allValues];
NSLog(@"%@", allmyKeys);

如何从搜索栏中搜索图片。

2 个答案:

答案 0 :(得分:0)

尝试这样做......使用NSPRedicate

NSArray *array = [NSArray arrayWithObject:[NSMutableDictionary dictionaryWithObject:@"filter string" forKey:@"email"]];  // key
NSArray *filteredarray = [array filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(email == %@)", @"filter string"]];

答案 1 :(得分:0)

如果您没有任何特殊原因,我认为使用带有数组内容的plist更好,我认为您使用的是NSDictionary。

 NSMutableArray *yourArray=[[NSMutableArray alloc]init];
NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *finalPath = [path stringByAppendingPathComponent:@"yourPlist.plist"];
NSMutableArray * plistArray = [NSMutableArray arrayWithContentsOfFile:finalPath];
for(int key=0; key!=[plistArray count]; key++){

    [yourArray addObject:[plistArray objectAtIndex:key ]];

}

所以你将图像放在你的阵列中。

  for(int i; i!=[yourArray count]; i++)
  {
if([yourTextField.text isEqualString:[yourArray objectAtIndex:i]]){
NSString *filePath = [[NSBundle mainBundle] pathForResource:[yourArray objectAtIndex:i] ofType:@"png"];
UIImage *image=[[UIImage alloc] initWithContentsOfFile:filePath];
 }
}

您可以拍摄您在文本字段中写下的名称。

顺便说一句,我还没有查看这段代码,但它可能会有效。

我希望这些代码可以帮助您解决问题。 祝你好运