Alex Rivera | Logout

UIDevice Orientation

Asked 2009-05-30T16:43:06.293
12

I have the following code in a method. When I run this in the simulator the debugger skips right over the code?? What am I missing?

if (([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeLeft) || 
        ([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeRight)) 
{       

} else {

}
Edit
Report

2 Answers

18

Update 2

This shouldn't matter, but try turning on orientation notifications:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];


[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(detectOrientation) name:@"UIDeviceOrientationDidChangeNotification" object:nil];

Update

My bad, I assumed it was empty.

Try removing the or statement and just test for a single orientation. See if that fixes it. Maybe there is a bracket problem or something silly.

I have the following test working in production code, so your technique should work:

    if (([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeLeft) || 
        ([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeRight)) {


}

Original Answer

You have to actually put statements in the if blocks to get it to step in.

The debugger is smart enough to skip over empty blocks.

answered 2009-05-30T18:56:29.380
0

Heh you need to call [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications] before obtaining the value. Have a look at documentation of this method. Took me a while to track this down.

answered 2011-07-05T13:35:06.193

Your Answer