Ich muss meine Spielschleife mit sehr genauem Timing ausführen. Ich versuche NSTimer zu benutzen, und ich bekomme gute Ergebnisse, aber es gibt ein bisschen Drift. Wenn NSTimer ausgelöst wird, beginnt das Ereignis das nächste Mal mit dem Zählen, wenn der Handler fertig ist, oder fängt es sofort an zu zählen. Wenn der erste ist es vernünftig für mich, setFireDate verwenden, um zu versuchen, den nächsten Timer-Feuern auszugleichen - als ich das versuchte, schien es schlimmer.Verwenden von NSTimer, um genaue Zeiten zu erhalten
Mein Timer ist so eingestellt, dass er alle 44ms abfeuert und ich möchte das Driften um mehr als 20ms stoppen. Wenn es driftet, möchte ich es für das nächste Feuer korrigieren. Ist das eine vernünftige Sache mit NSTimer zu versuchen?
20ms auf 44ms ist keine Drift, das ist ungenau. NSTImer sollte viel zuverlässiger sein. –
Ich denke, was ich sagen wollte, war, dass ich die Zeit brauche, die meine Schleife läuft, um nicht abzudriften. Von dem, was ich sagen kann, startet der Timer seinen nächsten Zeitpunkt an dem Punkt, an dem der Handler beendet wird, so dass die Zeit tatsächlich als Timer-Wert + Spiel-Up-Zeit erscheint. – Ian1971
Es ist sicher nicht so, wie es in der Dokumentation heißt (und ich habe festgestellt, dass das in der Vergangenheit wahr war, als ich einen einfachen Maus-Tracker schrieb). Wenn es driftet, sollten Sie einen Fehlerbericht mit Apple einreichen. –