我想知道为什么通过在UIViewController中跟踪该代码在iOS模拟器上进行测试时没有控制台输出-它只能通过在设备上进行测试来进行跟踪。
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{
NSLog(@"willRotateToInterfaceOrientation: ", toInterfaceOrientation);
}
以及如何打印该UIInterfaceOrientation值(枚举的类型)?
会很高兴得到您的帮助。
最佳答案
您的格式说明符在哪里?UIInterfaceOrientation
是typedef enum
,不是对象,因此您不能将%@
用作格式说明符。
应该看起来像这样:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{
NSLog(@"willRotateToInterfaceOrientation: %d", toInterfaceOrientation);
}
如果真的需要这种“漂亮打印”功能,则可以通过
switch
运行它,如下所示:NSString *orient;
switch(toInterfaceOrientation) {
case UIInterfaceOrientationLandscapeRight:
orient = @"UIInterfaceOrientationLandscapeRight";
break;
case UIInterfaceOrientationLandscapeLeft:
orient = @"UIInterfaceOrientationLandscapeLeft";
break;
case UIInterfaceOrientationPortrait:
orient = @"UIInterfaceOrientationPortrait";
break;
case UIInterfaceOrientationPortraitUpsideDown:
orient = @"UIInterfaceOrientationPortraitUpsideDown";
break;
default:
orient = @"Invalid orientation";
}
NSLog(@"willRotateToInterfaceOrientation: %@", orient);