2011-10-10 54 views
2

我试图根据界面方向更改时的屏幕尺寸来调整某些元素的大小。我在各种地方阅读过(包括这里的几个答案),获得屏幕边界的方法是使用[[UIScreen] mainScreen]边界]。所以,我已经添加了这个代码,看看它的行为:EXC_BAD_ACCESS当试图获得iPhone屏幕尺寸

- (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration 
{ 
    NSLog(@"view dimensions: (%@, %@)", [[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height); 
} 

但运行它的时候,只要我旋转屏幕,我得到一个EXC_BAD_ACCESS消息。是否有一些关于willRotateToInterfaceOrientation函数的作用域不允许我调用屏幕边界?如果是这样,我会怎么做呢?

+0

EXC_BAD_ACCESS表示您在某处提供了错误的指针。 –

回答

4

%@格式说明符期望格式参数为objective-c对象,而您提供的是纯浮点型。要打印浮点数,请使用%f说明符:

NSLog(@"view dimensions: (%f, %f)", [[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height);