Я пытаюсь реализовать приложение P2P. Я пытаюсь передать данные настраиваемого класса NSObject между устройствами. Я не могу понять, когда GKSession вызывает метод «receiveData».
Вот что я сделал
Обычное соединение и отображение диалогового окна со сверстниками
Когда приложение получает изменение состояния для однорангового узла и состояние Connected, я отправляю данные всем одноранговым узлам (в идеале это должно вызываться, когда каждый одноранговый узел принимает соединение) с использованием методов NSCoding.
В ReceiveData я декодирую NSData и возвращаю экземпляр NSObject.
Проблема в том, что метод session: peer: didChangeState: не вызывается на обоих устройствах. Он просто вызывается на устройстве, которое нажало кнопку «Подключить» в предупреждении PeerPicker.
Вопросы
Когда вызывается didChangeState и для кого? Разве он не должен вызываться для каждого однорангового узла, когда они подключены?
Когда вызывается метод receiveData: и для кого? Вызывается ли он для подтверждения получения сообщения (рукопожатия) или просто для передачи данных, отправленных другими узлами?
Спасибо за любую помощь.