Frage

Ich stehe auf ein Problem mit einigen meiner Code auf iPhone3Gs, die iOS5.0 ausführen

Der folgende Block wird nie ausgeführt, obwohl es mit iOS5.0 auf dem iPhone4 bezeichnet wird.

Die Protokollanweisung erscheint nie und der Haltepunkt wird nie ausgelöst. Ich habe überprüft, und sowohl der Motion Manager als auch die Warteschlange sind nicht null.

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

            NSLog(@"motion event received");

//...
}];

Vermisse ich etwas oder muss ich meinen Code neu schreiben, um ohne Blockwarteschlangen zu arbeiten?
Vielen Dank für jede Eingabe auf die USSUE!

Aktualisieren:

Ich habe diese Methode überprüft und sie funktioniert:

   [motionManager startAccelerometerUpdatesToQueue:motionQueue withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {
        NSLog(@"accelerometerData event received");
    }];
War es hilfreich?

Lösung

Dies hat nichts mit Blockwarteschlangen zu tun. Ich glaube -deviceMotionAvailable), aber das iPhone 3GS hat kein Gyroskop. So funktionieren auch die nicht blockbasierten Gerätebewegungsmethoden nicht für Sie. Sie sollten prüfen, ob das Beschleunigungsmesser allein für Ihre Bedürfnisse ausreicht. Andernfalls müssen Sie Ihre App einschränken, um ein Gyroskop zu benötigen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top