关闭iPhone加速度计,而不使用它

时间:2011-08-11 17:43:51

标签: iphone objective-c ios accelerometer

在我的游戏中,有一个简短使用加速度计。我使用这段代码:

UIAccelerometer *accel = [UIAccelerometer sharedAccelerometer];
accel.delegate = self;
accel.updateInterval = 1.0f/60.0f;

启动加速度计,然后使用以下命令更新:

- (void)accelerometer:(UIAccelerometer *)accellerometer didAccelerate:(UIAcceleration *)acceleration {

    if (whichLevel == 24) {
        //Blah blah blah, using accelerometer 
    } else {
        //Turn accelerometer off somehow?
    }
//I have found out using this:
NSLog(@"Accelerometer being used");
//That the accelerometer is being used after I start it in the game.
}

当然,在.h我放了一个 这种代码在很多教程中使用 - 但我的观点是,这只用了很短的时间,我想在我不使用它的时候关掉它。 (其中没有教程向您展示如何操作)

Apple似乎在这里说:http://developer.apple.com/library/ios/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/MotionEvents/MotionEvents.html   - 你应该使用

[motionManager stopAccelerometerUpdates];

但显然你必须这样设置才能以这种方式阻止它。我是否必须改变设置方式以结束它?或者我可以用我拥有的东西结束它吗?

提前致谢,

1 个答案:

答案 0 :(得分:1)

将加速度计的委托设置为nil应该让它知道您不再需要更新。它仍然可能无法完全关闭 - 例如系统会监视它提供方向更改事件 - 但您的应用程序不会对此负责。