How to get accelerometer data in IOS?

前端 未结 6 2220
被撕碎了的回忆
被撕碎了的回忆 2021-02-08 09:58

I am using the UIAccelerotmeterDelegate method accelerometer:didAccelerate: but recently that method has been deprecated in iOS 5.0. So what is the alternative way

6条回答
  •  陌清茗
    陌清茗 (楼主)
    2021-02-08 10:09

    Here is a useful sample code I found for CoreMotion from this link.

        @interface ViewController ()
    
        @property (nonatomic, strong) CMMotionManager *motionManager; 
        @property (nonatomic, strong) IBOutlet UILabel *xAxis; 
        @property (nonatomic, strong) IBOutlet UILabel *yAxis; 
        @property (nonatomic, strong) IBOutlet UILabel *zAxis; 
    
        @end
    
        @implementation ViewController
        - (void)viewDidLoad 
        { 
          [super viewDidLoad];
    
          self.motionManager = [[CMMotionManager alloc] init]; 
          self.motionManager.accelerometerUpdateInterval = 1;
    
          if ([self.motionManager isAccelerometerAvailable]) 
          { 
            NSOperationQueue *queue = [[NSOperationQueue alloc] init];
            [self.motionManager startAccelerometerUpdatesToQueue:queue withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {
                dispatch_async(dispatch_get_main_queue(), ^{ 
                  self.xAxis.text = [NSString stringWithFormat:@"%.2f",accelerometerData.acceleration.x]; 
                  self.yAxis.text = [NSString stringWithFormat:@"%.2f",accelerometerData.acceleration.y]; 
                  self.zAxis.text = [NSString stringWithFormat:@"%.2f",accelerometerData.acceleration.z];
                });
              }]; 
          } else 
          NSLog(@"not active"); 
        }
    @end
    

提交回复
热议问题