さまざまな検索の組み合わせでアプリを作成しました。
アプリには、テキストを入力して検索するための6つのテキストフィールドがあります。すべてのテキストフィールドは別の検索条件用です。
検索する前に入力する必要があるテキストフィールドは1つだけです。そのほか、ユーザーは入力して検索するテキストフィールドの数を選択できます。したがって、複数の検索の組み合わせが可能です。
問題は、どのテキストフィールドに入力するかを決定するための最良の方法と、検索条件を満たすオブジェクトを検索する方法です。
searchメソッドは、オブジェクトの配列(私の場合はemployeeオブジェクトの配列)をループして、値が一致するかどうかを確認する必要があります。
私の目標は、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
}
}