NSStringとswitch 2

switchっぽいものでNSStringを扱うパート2
非常に気持ち悪いですがね

void PJSwitch(NSString * cmpdString, void (^block)(NSString*)) {
	block(cmpdString);
}
void PJCase(NSString*constantString,NSString* cmpdString,void (^block)()) {
	if ([cmpdString isEqualToString:constantString]) block();
}
NSString *fooString = ...;
PJSwitch(fooString, ^(NSString *arg1) {
// fooString   は   swith(<ここの部分>)
	__block BOOL stop = NO;
	while (1) {
		PJCase( @"hoge", arg1, ^() {
			NSLog(@"matched hoge");
			stop = YES;
		});  if (stop) {  break;  }
		PJCase(@"fuga", arg1, ^() {
			NSLog(@"matched fuga");
                        stop = YES;
		});  if (stop) {  break;  }

		break;
	}
});