Multipeer Connectivity хранит PeerID из предыдущих сеансов

func browser(browser: MCNearbyServiceBrowser!, foundPeer peerID: MCPeerID!, withDiscoveryInfo info: [NSObject : AnyObject]!) {

    println(peerID) 

}

Когда я использую эту строку кода, я сначала получаю идентификаторы одноранговых узлов из предыдущих сеансов, а затем он предоставляет новые идентификаторы одноранговых узлов из текущего сеанса. Где хранятся эти данные? Есть ли способ удалить сохраненные; может быть, как-то инициализировать в View Controller? Я просто хочу получить идентификатор узла из текущего сеанса.

Это журнал консоли:

<MCPeerID: 0x15559080 DisplayName = iphone>
<MCPeerID: 0x156616e0 DisplayName = iphooneeee>
<MCPeerID: 0x1563da30 DisplayName = iphooneeee>

person senty    schedule 06.04.2015    source источник


Ответы (2)


Просто предположение... сеанс - это распределенный объект. Платформа (ОС) хранит данные для сеанса, распределенные по всем устройствам, участвующим в сеансе. Возможно, вам придется перезагрузить все такие устройства, чтобы действительно стереть все данные о сеансе. Я не могу сказать, как фреймворк узнает, когда нужно стереть устаревший или просроченный сеанс. Но, например, это может быть сохранение сеанса в течение длительного времени на случай, если устройство вернется в зону действия.

person bootchk    schedule 07.04.2015
comment
любая идея, где получить больше информации об этом? - person C4 - Travis; 26.05.2015
comment
Я согласен с C4 выше, я хотел бы узнать, как очистить объект. Как было сказано senty, foundpeer возвращает поддельные сеансы. Как вы сказали, я перезагрузил устройство, и моя проблема была решена. НЕ решение. - person LevinsonTechnologies; 13.03.2016

Я не мог разобраться с проблемой хранения, но нашел способ обойти это, создав пустой массив, инициируя его опустошение каждый раз, когда я нажимаю кнопку (что в моем случае разобралось), и сохраняя идентификатор узла в массиве.

 ~ ViewController {
foundPeers: MCPeerID = []

~ ViewDidLoad {
  foundPeers = []

}

 @IBAction var button~ {
   foundPeers = []
} 

// and
  func browser(browser: MCNearbyServiceBrowser!, foundPeer peerID: MCPeerID!, withDiscoveryInfo info: [NSObject : AnyObject]!) {

  foundPeers.append(peerID)

  foundPeers[foundPeers.count - 1].displayName
 }
}

Сохранил данные вручную и

person senty    schedule 07.04.2015