Sto utilizzando il metodo UIAccelerotmeterDelegate
accelerometer:didAccelerate:
ma recentemente tale metodo è stato deprecato in iOS 5.0. Allora, qual è il modo alternativo per ottenere i dati dell'accelerometro? La documentazione non menziona l'alternativa che dovremmo usare.Come ottenere i dati dell'accelerometro in IOS?
11
A
risposta
13
È necessario utilizzare lo Core Motion framework (introdotto in iOS 4.0) come sostituto. Creare un'istanza di CMMotionManager
e dirla a startAccelerometerUpdatesToQueue:withHandler:
, passandole a NSOperationQueue
e un blocco che verrà eseguito sulla coda specificata ogni volta che sono disponibili nuovi dati dell'accelerometro.
5
Sembra che UIAccelerometer e UIAccelerometerDelegate siano stati sostituiti dal framework CoreMotion.
È possibile trovare la risposta qui:
Why is accelerometer:didAccelerate: deprecated in IOS5?
spero che aiuta.
3
È sostituito da CoreMotion
. Vedi Motion Events.
4
Ecco un codice di esempio utile che ho trovato per CoreMotion dal collegamento this.
@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
1
Aggiungi CoreMotion framework al progetto. Quindi:
#import <CoreMotion/CoreMotion.h>
@property (strong, nonatomic) CMMotionManager *motionManager;
- (void)viewDidLoad {
_motionManager = [CMMotionManager new];
_motionManager.accelerometerUpdateInterval = 0.01; // 0.01 = 1s/100 = 100Hz
if ([_motionManager isAccelerometerAvailable])
{
NSOperationQueue *queue = [NSOperationQueue new];
[_motionManager startAccelerometerUpdatesToQueue:queue withHandler:^(CMAccelerometerData *accelerometerData, NSError *error){
NSLog(@"X = %0.4f, Y = %.04f, Z = %.04f",
accelerometerData.acceleration.x,
accelerometerData.acceleration.y,
accelerometerData.acceleration.z);
}];
}
}
Problemi correlati
- 1. Come ottenere i metadati dell'immagine in ios
- 2. come ottenere i dati utente da Facebook SDK su iOS
- 3. Come salvare i dati in iOS
- 4. come ottenere i dati dell'istogramma in Matlab
- 5. Come ottenere i dati del sommario (schema) PDF in iOS (iPad)?
- 6. Come ottenere i dati POST con Firebug?
- 7. come ottenere i dati da un URL
- 8. Xamarin iOS: non salvare i dati PKCS12 nel portachiavi iOS
- 9. AudioRecord - come ottenere i dati nel buffer?
- 10. jQuery - Come ottenere i dati XML
- 11. Come ottenere i dati del modulo come oggetto in jquery
- 12. Come ottenere i dati dal servizio all'attività
- 13. Come condividere i dati del portachiavi tra le applicazioni iOS
- 14. Come ottenere i dati utente in forma in Symfony 1.2?
- 15. Ottenere i dati dall'array post in CodeIgniter
- 16. Come ottenere un token CSRF in iOS?
- 17. ottenere i dati degli attributi
- 18. Condividere i dati tra l'orologio app e iOS in watchOS2
- 19. come ottenere i dati JSON in cascate mora
- 20. Come ottenere i dati da una porta USB in VB.NET
- 21. Come ottenere i dati R in una matrice di MATLAB
- 22. Come ottenere i dati dal cursore in ContextMenu
- 23. Come ottenere esplicitamente i dati del post in Spring MVC?
- 24. Come ottenere i dati da osservabili in angular2
- 25. Come ottenere i dati del sito Web in Adobe InDesign
- 26. Come ottenere i dati a chi invio un'email in iphone
- 27. Come ottenere i dati NSDictionary in un UITableView
- 28. Come ottenere i dati visualizzati di KendoGrid in formato json?
- 29. Come ottenere i dati in un raccoglitore istogramma
- 30. Come ottenere i dati in Struts da AngularJS post