2016-08-17 3 views
-1

Ich mache eine Alarm-App. Es gibt zwei Dinge, die am Simulator funktionieren, aber nicht auf meinem Gerät.(iOS Swift) Einige Funktionen funktionieren am Simulator, aber nicht am Gerät

1) Laut der this Website, wenn UIApplicationExitsOnSuspend auf "YES" gesetzt ist, sollte die App immer ausgeführt werden, auch wenn das Gerät gesperrt ist (sofern es im Vordergrund ist). Ich habe diese Informationen verwendet, um sicherzustellen, dass NSTimer auch dann ausgeführt wird, wenn das Gerät gesperrt ist. Im Simulator funktioniert die NSTimer immer und der Sound wird immer ausgelöst (selbst wenn ich den Simulatorbildschirm sperre). Wenn ich mein iPhone-Gerät an den Computer anschließe und die App über xcode laufe, funktioniert es auch gut. Aber das Problem ist, dass, sobald ich mein Telefon abziehe und die gespeicherte App lade, manchmal der NSTimer funktioniert und manchmal nicht.

2) Lokale Benachrichtigungen: Auf dem Simulator funktionieren die lokalen Benachrichtigungen gut, aber auf dem iPhone-Gerät werden die Benachrichtigungen zu zufälligen Zeiten ausgelöst und manchmal werden sie nicht einmal ausgelöst. Aber auf dem Simulator werden die lokalen Benachrichtigungen genau ausgelöst. Ich habe verschiedene Tests durchgeführt (z. B. die lokale Benachrichtigung so eingestellt, dass sie 20 Sekunden nach dem Laden der App auslöst und dann die App im Hintergrundmodus beendet), aber sie löst nicht zur angegebenen Zeit aus und wie ich schon sagte, wird sie manchmal nicht ausgelöst .

In diesem Fall, sollte ich Simulator oder das iPhone-Gerät vertrauen? Könnte das ein Fehler sein oder mache ich etwas falsch?

Antwort

2

Vertrauen Sie immer dem Gerät. Denn so wird der Endanwender Ihre App betreiben!

Es ist bekannt, dass Sie dem Simulator für das Hintergrundverhalten nicht trauen sollten. Das NSTimer-Problem ist ein hervorragendes Beispiel. Das Problem ist, dass der Simulator Ihr Computer und kein iOS-Gerät ist. Timer laufen nicht im Hintergrund; Der Simulator führt Sie in die Irre. (Das Problem, wo sich die App auf dem Gerät anders verhält, wenn sie von Xcode läuft, ist etwas überraschender, aber in diesem Fall nehme ich an, dass es nicht ganz überraschend ist; testet beide Möglichkeiten.)

Und natürlich gibt es Lose von iOS-Funktionen, die nicht auf den Simulator überhaupt funktionieren.

+0

Ich glaube nicht, dass das das Problem ist Matt. Im Fall von NSTimer funktioniert es gut auf meinem Gerät, solange es durch xcode läuft. Aber wenn ich nicht durch xcode laufe, dann tut es nicht ... –

+0

Auch wie im Falle der lokalen Benachrichtigung, bekomme ich es in zufälliger Zeit .... –

+0

"Ich glaube nicht, dass das das Problem ist Matt" Ich Ich weiß nicht, was du damit meinst. Du hast gefragt, was du vertrauen sollst und ich habe dir die Antwort gesagt. Dein Test auf dem Gerät, das vom Sprungbrett startet, ist der definitive Test (und noch definitiver, wenn du einen Release Build machst); nichts anderes ist. Du kannst mir glauben oder ungläubig sein, aber das ist die Antwort. – matt

0

Ich habe das Problem für # 2 herausgefunden. Ich habe einfach vorhergehende Benachrichtigungen abgebrochen, bevor ich neue gesendet habe.

Ich habe immer noch Probleme mit dem ersten Problem.

Verwandte Themen