Ich habe eine App, in der der Benutzer ein Bild auswählen und es an einen Freund senden kann, indem er das Bild an eine Instanz von MFMessageComposeViewController anfügt. Nach dem Drücken von Senden in der MFCVCV-Ansicht funktionieren die Dinge manchmal wie erwartet - die Nachricht mit dem Bild wird erfolgreich an den Empfänger gesendet oder die Meldung "Nachricht fehlgeschlagen" erscheint neben der Nachricht im nativen iMessage-Client (aber in In beiden Fällen ist das Image im nativen Client sichtbar. Es gibt jedoch einen Fehler, der ungefähr die Hälfte der Zeit nach dem Drücken von Senden (auf einem iPhone 4 mit iOS 7) auftritt. Die Botschaft - Anhaftung und alles - verschwindet, um nie wieder gesehen zu werden. Der Empfänger empfängt niemals die Nachricht und erscheint nicht im Nachrichtenkanal des Absenders in iMessage.
Ich bin ziemlich sicher, dass dies ein Fehler in Apples MFMessageComposeViewController selbst ist, weil die API absolut einfach ist und ich den Fehler in einer separaten Demo-App zuverlässig reproduzieren konnte Ссылка .
%Vor% Nach dem Beobachten der Benutzeroberfläche während einiger Erfolgs- und Fehlerfälle scheint es eine Wettlaufsituation in der zusammengesetzten Ansicht zu sein, verschlimmert durch das OS, das gestresst ist - nicht sicher, ob es Speicher- oder CPU-Belastung ist (oder beides?). In jedem Fall, wenn das Senden erfolgreich ist, werden die Inhalte des Nachrichtenkanals mit den Inhalten der jeweiligen Konversation unmittelbar nach der Auswahl eines Kontakts gefüllt, wobei die neue Nachricht sichtbar an das Ende angehängt wird. Wenn jedoch der Fehler auftritt und die Nachricht verschwindet, werden die vorherigen Nachrichten der Konversation normalerweise erst angezeigt, nachdem die Senden-Schaltfläche gedrückt wurde, ohne dass die neue Nachricht angezeigt wird. Wenn es sich tatsächlich um eine Race-Bedingung handelt, liegt die Vermutung nahe, dass es sich um einen Wettlauf zwischen dem Nachrichtenabrufmechanismus des Composer VC und -viewDidLoad
handelt.
Hat jemand schon einmal davon erfahren und / oder einen Workaround? Ich werde einen Fehlerbericht an Apple senden, aber ich möchte eine Lösung finden, die das Warten auf eine Korrektur von Apple nicht einschließt.
Anmerkungen:
Nachrichten verschwinden am häufigsten auf iPhone 4 und iPhone 5s, aber selten auf der iPod touch 5. Generation (alle unter iOS 7.0.2).
Der Fehler kann am einfachsten mit der App Ссылка reproduziert werden das iPhone 4, indem Sie die 20 Bilder an die gleiche Person so schnell wie möglich senden.
Es gibt einen separaten (aber wahrscheinlich verwandten) Fehler. Nach der Auswahl der E-Mail-Adresse eines Kontakts in der Ansicht MFCMCVC bestimmt der vc, ob er eine iMessage oder MMS senden soll. Ein Teil der Zeit während des Tests hat die falsche Entscheidung getroffen und versucht, die Nachricht als MMS zu senden, obwohl dem Empfänger-iMessage-Konto keine Telefonnummer zugeordnet war. Dies führte zu einer Nachricht, die dem Absender aussah, als wäre sie erfolgreich gesendet worden, aber sie konnte ihr Ziel nicht erreichen.
Dies scheint nicht der Fehler "iMessage sendet keine Nachrichten" zu sein, über den sich viele Benutzer bei Apple beschwert haben.
UPDATE:
Hier ist der Stacktrace, der protokolliert wird, wenn eine Nachricht verschwindet und nicht senden kann:
%Vor%Stellen Sie sicher, dass Uhrzeit und Datum richtig eingestellt sind. Ich änderte meinen, um einen Emulator herunterzuladen und vergaß ihn danach wieder zu ändern. Meine Nachrichten begannen dann zu verschwinden. Nachdem ich die Zeit behoben hatte, wurde das Problem behoben. Prost
Tags und Links objective-c ios imessage mfmessagecomposeview