我制作了一个具有不同搜索组合的应用程序。
该应用程序有 6 个文本字段可用于输入和搜索文本。每个文本字段都用于另一个搜索条件。
搜索前只需填写 1 个文本字段。除此之外,用户可以选择要填写和搜索多少个文本字段。所以可能有多种搜索组合。
问题是,确定填写哪些文本字段以及如何搜索满足搜索条件的对象的最佳方法是什么。
搜索方法应该遍历一个对象数组(在我的例子中是一个员工对象数组)并检查值是否匹配。
我的目标是限制 if 语句的数量。
更新:
到目前为止,这是我的代码:
-(IBAction)SearchEmployees:(id)sender{
NSString *fullName = [(textfieldName.text)uppercaseString];
NSString *functionName = [(textfieldFunction.text)uppercaseString];
NSString *department = [(textfieldDepartment.text)uppercaseString];
NSString *field = [(textfieldField.text)uppercaseString];
NSString *expertise = [(textfieldExpertise.text)uppercaseString];
NSString *interest = [(textfieldInterest.text)uppercaseString];
NSMutableDictionary *filledTextfields = [NSMutableDictionary dictionary];
if (![fullName isEqualToString:@""]){
[filledTextfields setObject: fullName forKey: @"fullName"];
}
if (![functionName isEqualToString:@""]){
[filledTextfields setObject: functionName forKey: @"functionName"];
}
if (![department isEqualToString:@""]){
[filledTextfields setObject: department forKey: @"department"];
}
if (![field isEqualToString:@""]){
[filledTextfields setObject: field forKey: @"field"];
}
if (![expertise isEqualToString:@""]){
[filledTextfields setObject: expertise forKey: @"expertise"];
}
if (![interest isEqualToString:@""]){
[filledTextfields setObject: interest forKey: @"interest"];
}
NSMutableArray *foundEmployee = [[NSMutableArray alloc]init];
for (id key in filledTextfields)
{
NSLog(@"KEY: %@ OBJECT: %@", key, [filledTextfields objectForKey:key]);
for (Employee *employee in self.employees){ //self.employees is the array to search in
//do something
}
}