Question

Je suis en cours d'exécution dans un problème avec une partie de mon code sur iPhone3GS en cours d'exécution iOS5.0

Le bloc suivant n'est exécuté , même si elle est appelée bien sur iPhone4 avec iOS5.0.

La déclaration de journal apparaît jamais, et le point d'arrêt ne se déclenche. J'ai vérifié, et à la fois le gestionnaire de mouvement et la file d'attente ne sont pas nulles.

  [motionManager startDeviceMotionUpdatesToQueue:motionQueue withHandler:^(CMDeviceMotion *motion, NSError *error) {

            NSLog(@"motion event received");

//...
}];

Suis-je manque quelque chose ou dois-je besoin de réécrire mon code pour travailler sans files d'attente de bloc
Merci pour toute entrée sur le ussue!

Mise à jour:

J'ai vérifié cette méthode, et cela fonctionne:

   [motionManager startAccelerometerUpdatesToQueue:motionQueue withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {
        NSLog(@"accelerometerData event received");
    }];
Était-ce utile?

La solution

Cela n'a rien à voir avec les files d'attente de bloc. Je crois que votre problème est l'événement de mouvement dispositif nécessitent à la fois accéléromètre et gyroscope (et peut être interrogé avec -deviceMotionAvailable), mais l'iPhone 3GS ne dispose pas d'un gyroscope. Ainsi, même les méthodes de mouvement de l'appareil à base non-bloc ne fonctionnera pas pour vous. Vous devriez regarder en voir si l'accéléromètre seul est suffisant pour vos besoins; sinon vous devrez limiter votre application pour exiger un gyromètre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top