2010-12-07 156 views
2

我想知道爲什麼在iOS模擬器上通過跟蹤UIViewController中的代碼進行測試時沒有控制檯輸出 - 它只通過在設備上測試進行跟蹤。NSLog InterfaceRotation在模擬器上不起作用?

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

如何打印出UIInterfaceOrientation值(枚舉類型)? 將很高興得到你的幫助..感謝

回答

10

你的格式說明符在哪裏?

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

是的,謝謝你真正快速的回答!我如何打印出UIInterfaceOrientation值? – geforce 2010-12-07 22:56:55

相關問題