2010-07-12 9 views
8

Estoy intentando simplemente NSLog la salida del nuevo iPhone 4 Giroscopio. Pero después de leer la documentación y seguir su código de muestra, obtengo este error.CMMotionManager y el giroscopio en el iPhone 4

ERROR,Time,300635803.946,Function,"CLLoggingSetFile",could not open locations log /var/mobile/Library/Caches/CoreMotion/CoreMotion.log 

Incluso si acabo de configurar mi MotionManager objeto con [[alloc CMMotionManager] init]; por sí solo y sin otro código, sigo recibiendo el error.

Aquí está mi archivo .h.

#import <UIKit/UIKit.h> 
#import <CoreMotion/CoreMotion.h> 

@interface GyroTest0ViewController : UIViewController { 
    CMMotionManager *motionManager; 
    NSOperationQueue *opQ; 
} 

@end 

Y aquí mi archivo .m.

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    // the error occurs even just with this line on its own 
    motionManager = [[CMMotionManager alloc] init]; 

    if (motionManager.gyroAvailable) { 
     motionManager.gyroUpdateInterval = 1.0/60.0; 
     [motionManager startGyroUpdates]; 
     opQ = [[NSOperationQueue currentQueue] retain]; 
     CMGyroHandler gyroHandler =^(CMGyroData *gyroData, NSError *error) { 
      CMRotationRate rotate = gyroData.rotationRate; 
      NSLog(@"rotation rate = [%f, %f, %f]", rotate.x, rotate.y, rotate.z); 
     }; 
    } else { 
     NSLog(@"No gyroscope on device."); 
     [motionManager release]; 
    } 
} 

Cualquier ayuda y/o código fuente para simplemente registrar los datos del giroscopio del iPhone 4 sería muy apreciada. ¡Muchas gracias!

+0

Es un error que no afecta la ejecución de la aplicación. – twerdster

+1

Después de que iOS 4.2 se apaga, el mensaje de error desapareció. Creo que podemos cerrar esto. – Kay

+0

Recibo el mismo error cuando trato de registrar la 'actitud', pero el error no parece causar un problema real: el NSLog funciona. – RawMean

Respuesta

2

Todos los resultados con respecto a este tema? Obtengo el mismo error incluso cuando uso el código de demostración de la tetera WWDC. Archivé un informe de error (8382659).

Por cierto, recibo el mismo error cuando uso el método de inserción descrito por Joshua Weinberg.

Actualización: Apple confirmó el error pero se refirió a un problema duplicado 8173937 que no puedo encontrar. Bueno, esperemos que se solucione en la próxima versión.

+1

Después de que iOS 4.2 se apaga, el mensaje de error desapareció. Creo que podemos cerrar esto. (Kay) –

8

Prueba de esto,

motionManager.gyroUpdateInterval = 1.0/60.0; 
    [motionManager startGyroUpdatesToQueue:[NSOperationQueue currentQueue] 
           withHandler: ^(CMGyroData *gyroData, NSError *error) 
              { 
               CMRotationRate rotate = gyroData.rotationRate; 
               NSLog(@"rotation rate = [%f, %f, %f]", rotate.x, rotate.y, rotate.z); 
              }]; 
3

Para el código de ejemplo WWDC:

  • Acceder a ADC
  • Haga clic en la WWDC 2010 vídeos de las sesiones
  • Ver en iTunes
  • Allí se encuentra el enlace al código de muestra (230 MB)
+0

Aquí hay un enlace al código de ejemplo de la WWDC 2010: http://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/getSoftware?code=y&source=x&bundleID=20645 – jonsibley

Cuestiones relacionadas