我想在我的应用中使用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);
如何从搜索栏中搜索图片。
答案 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];
}
}
您可以拍摄您在文本字段中写下的名称。
顺便说一句,我还没有查看这段代码,但它可能会有效。
我希望这些代码可以帮助您解决问题。 祝你好运