Q:

What's wrong with this switch statement?

Image Link
As you can see from the output, the switch statement completely skips over case 'view1'. And I'm having trouble understanding what the warnings mean. 

A:

Try to change the method signature to
- (void)switchViewTo:(NSString *)view 
{
  if ([view isEqualToString:@"view1"]) {
    NSLog(@"view 1");
  } else if ([view isEqualToString:@"view2"]) {
    NSLog(@"view 2");
  } else {
    NSLog(@"whatever");
  }
}

In the designated initializer you call [self switchToView:@"view1"];

