我用不同的搜索組合創建了一個應用程序。檢查多個搜索組合的最佳方法
該應用程序有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
}
}
我還沒有測試過。只要我測試它,我會讓你知道的。 – StackFlower
@StackFlower:有沒有反饋? –