Ich versuche eine P2P-Anwendung zu implementieren. Ich versuche, die Daten einer benutzerdefinierten NSObject-Klasse zwischen den Geräten zu übertragen. Ich bin nicht in der Lage herauszufinden, wann die Methode "receivedData" von GKSession aufgerufen wird.iPhone - wie werden Daten in P2P übertragen
Hier ist, was ich
Die übliche Verbindung und zeigt ein Dialogfeld mit Gleichaltrigen
Wenn der App erhält eine Zustandsänderung für einen Peer und der Staat verbunden ist, getan habe, ich bin Senden der Daten an alle Peers (idealerweise sollte dies aufgerufen werden, wenn jeder Peer die Verbindung annimmt) unter Verwendung von NSCoding-Methoden
In receivedData dekodiere ich die NSData und zurück die NSObject-Instanz
Das Problem ist die Sitzung: Peer: didChangeState: Methode ist nicht auf beiden Geräten immer genannt. Es wird nur auf dem Gerät aufgerufen, das in der PeerPicker-Warnung auf die Schaltfläche "Verbinden" geklickt hat.
Fragen
Wenn didChangeState und für wen genannt wird? Sollte es nicht für jeden Peer aufgerufen werden, wenn sie verbunden sind?
Wann wird die receivedData: -Methode aufgerufen und für wen? Wird es aufgerufen, um den Empfang einer Nachricht (Handshake) zu bestätigen oder nur die von anderen Peers gesendeten Daten zu übertragen?
Danke für jede Hilfe.
Vielen Dank. Das klärt Dinge .. – lostInTransit
Ich hoffe, dass Sie bereits für Apple arbeiten. Diese Erklärung sollte die offizielle Dokumentation sein. – typeoneerror