NSLog InterfaceRotation 在模拟器上不起作用?

Posted

技术标签:

【中文标题】NSLog InterfaceRotation 在模拟器上不起作用?【英文标题】:NSLog InterfaceRotation doesn't work on simulator? 【发布时间】:2010-12-07 22:47:01 【问题描述】:

我想通过在我的 UIViewController 中跟踪该代码来了解为什么在 ios 模拟器上测试时没有控制台输出 - 它仅通过在设备上进行测试来跟踪。

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
    NSLog(@"willRotateToInterfaceOrientation: ", toInterfaceOrientation);

我如何打印出 UIInterfaceOrientation 值(枚举类型)? 很高兴得到您的帮助..谢谢

【问题讨论】:

【参考方案1】:

您的格式说明符在哪里?

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);

【讨论】:

是的,感谢您的快速回答!我如何打印出 UIInterfaceOrientation-value? 代码就是这样做的。它是一个数值 - 您需要查询文档以获取翻译。

以上是关于NSLog InterfaceRotation 在模拟器上不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

不直接用NSLog

iOS ---不一样的NSLog打印(定位打印)

有啥方法可以用 NSLog 进行彩色打印?

OCUnit、NSLog 和 XCode 3.1

代码笔记iOS-NSLog的使用

键盘视图控制器 NSLog IOS 8