尝试获取iPhone屏幕尺寸时的EXC_BAD_ACCESS

时间:2011-10-10 09:36:54

标签: iphone objective-c screen-orientation

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

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

但是在运行它时,只要我旋转屏幕,我就会收到一条EXC_BAD_ACCESS消息。有没有关于willRotateToInterfaceOrientation函数的范围,它不允许我调用屏幕边界?如果是这样,我该怎么做呢?

1 个答案:

答案 0 :(得分:4)

%@ format说明符要求format参数为objective-c对象,而您提供的是plain float。要打印浮点数,请使用%f说明符:

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