2008-10-30 12 views
8

Ich habe eine Anwendung, die den Beschleunigungssensor verwendet. Manchmal wird die Anwendung gestartet, ohne dass die Beschleunigungsmesserdaten aktualisiert werden. Wenn die App neu gestartet wird, bleibt das Problem manchmal bestehen, manchmal nicht. Und noch seltsamer, manchmal kann ich es 10 mal versuchen und alles funktioniert wie erwartet. Ist das ein Fehler oder fehlt mir etwas? Debugging, dieser Code wird nie aufgerufen, wenn der Beschleunigungssensor nicht aktualisiert wird:Manchmal Accelerometer Delegate-Methode heißt nicht

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration; 

Irgendwelche Ideen?

Antwort

7

Ich habe endlich eine Arbeit gefunden. Dies ist ein bekannter Fehler. Die Arbeit, die ich gefunden habe, ist also, einen Thread zu starten und diesen Thread überprüfen zu lassen, ob der Accelerometer-Delegat aufgerufen wurde. Falls ja, dann den Thread beenden, falls nicht, den Delegierten erneut setzen und erneut testen, bis der Accelerometer-Delegat wird angerufen. Ich habe das gründlich getestet und es funktioniert einwandfrei. Ich hoffe, dass dies beim nächsten Update des iPhone OS gelöst wird.

1

Ich habe das gleiche Problem. Es passiert vielleicht 1/20 mal mit einer App, die ich aus dem CrashLanding-Beispiel gemacht habe. Nachdem ich es mit meiner App bemerkt hatte, nahm ich eine neue Version von Crashlanding, installierte sie und bekam schließlich den Start, dass der Beschleunigungsmesser versagte.

Ich weiß nicht, wie ich es beheben kann. Ehrlich gesagt hasse ich den Beschleunigungsmesser ... zumindest für die Steuerung von Spielen: - \

Auch der Beschleunigungsmesser ist gelegentlich fehlgeschlagen, wenn ich das "Beschleunigungsmesser" Beispielprojekt starte.

1

Wie andere erwähnt haben, ist dies ein bekannter Fehler; Ich habe den Fehler mit Apple (Bug Reporter Problem ID 6093028) protokolliert, vielleicht haben andere dies auch getan. Soweit ich weiß, leiden alle Apps, die UIAccelerometer verwenden (einschließlich Apples Beispiel-Apps), unter diesem Problem, obwohl die Häufigkeit des Auftretens variiert.

1

FWIW, meine App ist weit verbreitet und verwendet den Beschleunigungsmesser, und ich hatte dieses Problem nie.

Mein Anwendungsfall kann anders als Ihres sein: Ich aktiviere es nur auf Benutzeranfrage, auch nach dem Start der Anwendung.