Non iPhone3GS blocco di supporto code?
-
27-10-2019 - |
Domanda
Io corro in un problema con un po 'del mio codice su iPhone3GS esecuzione iOS5.0
Il seguente blocco non viene mai eseguito , anche se viene chiamato bene su iPhone4 con iOS5.0.
La dichiarazione di registro non compare mai, e il punto di interruzione non viene mai attivato. Ho controllato, e sia il responsabile del movimento e la coda non sono nulli.
[motionManager startDeviceMotionUpdatesToQueue:motionQueue withHandler:^(CMDeviceMotion *motion, NSError *error) {
NSLog(@"motion event received");
//...
}];
Mi manca qualcosa o devo riscrivere il mio codice di lavoro senza le code di blocco?
Grazie per qualsiasi ingresso sul ussue!
Aggiornamento:
Ho controllato questo metodo, e funziona:
[motionManager startAccelerometerUpdatesToQueue:motionQueue withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {
NSLog(@"accelerometerData event received");
}];
Soluzione
Questo non ha nulla a che fare con le code di blocco. Credo che il tuo problema è il dispositivo di eventi di movimento richiedono sia accelerometro e giroscopio (e possono essere interrogati con -deviceMotionAvailable
), ma l'iPhone 3GS non ha un giroscopio. Quindi i metodi di movimento dispositivo, anche il non-block-based non funziona per voi. Si dovrebbe guardare anche vedere se l'accelerometro da solo è sufficiente per le vostre esigenze; altrimenti dovrete per restringere l'app per richiedere un giroscopio.