Вы можете использовать NSDictionary, заполненный ObjC 'Blocks', чтобы сделать оператор, подобный переключателю, который выполняет желаемый код.Поэтому создайте словарь с вашими строковыми ключами, сопоставленными с блоком кода, который будет выполняться, когда каждый найден:
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
^{ NSLog(@"found key1"); }, @"key1",
^{ NSLog(@"found key2"); }, @"key2",
nil];
Вы, вероятно, подготовите этот словарь только один раз на каком-то раннем этапе, как в конструкторе или статическоминициализатор, чтобы он был готов к выполнению вашего более позднего кода.
Затем вместо вашего блока if / else вырежьте строковый ключ из любого входного значения, которое вы получаете (или, возможно, вам не понадобится его разрезать,все что угодно):
NSString *input = ...
NSRange range = ...
NSString *key = [input substringWithRange:range];
И выполнить (быстрый) словарь поиска кода для выполнения.Затем выполните:
void (^myBlock)(void) = [dict objectForKey:key];
myBlock();