I am using a static analyzer for the first time and can hardly detect the arrows. Having looked at some similar questions on SO, I think the problem is that the size of CGSize is zero, but I'm not quite sure how it works.
Here is the code:
- (void)keyboardDidShow:(NSNotification*)notification { CGSize size = CGSizeMake(0, 0); size = [self keyboardSize:notification]; if (UIInterfaceOrientationIsLandscape(self.interfaceOrientation)) { detailTableView.frame = CGRectMake(detailTableView.frame.origin.x, detailTableView.frame.origin.y, detailTableView.frame.size.width, kTableViewMovableHeight + kTableViewDefaultHeight - size.height ); //detailTableView.scrollEnabled = YES; } } - (CGSize)keyboardSize:(NSNotification *)aNotification { NSDictionary *info = [aNotification userInfo]; NSValue *beginValue = [info objectForKey:UIKeyboardFrameEndUserInfoKey]; UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation]; CGSize keyboardSize; UIDeviceOrientation _screenOrientation = orientation; if ([UIKeyboardDidShowNotification isEqualToString:[aNotification name]]) { if (UIDeviceOrientationIsPortrait(orientation)) { keyboardSize = [beginValue CGRectValue].size; } else { keyboardSize.height = [beginValue CGRectValue].size.width; keyboardSize.width = [beginValue CGRectValue].size.height; } } else if ([UIKeyboardWillHideNotification isEqualToString:[aNotification name]]) { if (_screenOrientation == orientation) { if (UIDeviceOrientationIsPortrait(orientation)) { keyboardSize = [beginValue CGRectValue].size; } else { keyboardSize.height = [beginValue CGRectValue].size.width; keyboardSize.width = [beginValue CGRectValue].size.height; } // rotated } else if (UIDeviceOrientationIsPortrait(orientation)) { keyboardSize.height = [beginValue CGRectValue].size.width; keyboardSize.width = [beginValue CGRectValue].size.height; } else { keyboardSize = [beginValue CGRectValue].size; } } return keyboardSize; }

source share