簡體   English   中英

如何為此代碼實現計時器?

[英]How do I implement a timer for this code?

-(void) play
{
    CMMotionManager *motionManager = [[CMMotionManager alloc] init];
    [motionManager startDeviceMotionUpdates];

    BOOL timeReached = NO;

    while(!self.stopButtonPressed)
    {
        if(motionManager.deviceMotion.userAcceleration.y >= ... && motionManager.deviceMotion.userAcceleration.y <= ...)
        {
             //start timer
        }
        while(motionManager.deviceMotion.userAcceleration.y >= ... && motionManager.deviceMotion.userAcceleration.y <= ... && !timeReached)
        {
            if(//check timer & if timer is >=300ms)
            {
              timeReached = YES;
              NSLog(@"acceleration on Y-axis stayed between ... & .. for at least 300ms");
            }
        }
    }
}

看起來你的方式錯了; 您應該將accelerometerUpdateInterval設置為您要查找的任何內容,而不是運行時鍾,並使用startAccelerometerUpdatesToQueue:withHandler:來接收數據。

Apple文檔

以指定間隔處理運動更新

為了以特定間隔接收運動數據,應用程序調用“start”方法,該方法采用操作隊列(NSOperationQueue的實例)和特定類型的塊處理程序來處理這些更新。 運動數據被傳遞到塊處理程序中。 更新頻率由“interval”屬性的值確定。

加速度計。 設置accelerometerUpdateInterval屬性以指定更新間隔。 調用startAccelerometerUpdatesToQueue:withHandler:方法,傳入一個CMAccelerometerHandler類型的塊。 加速度計數據作為CMAccelerometerData對象傳遞到塊中。

一旦你完成所有設置,就讓它運行。 當您收到塊中的完成通知時,請查看您收到的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM