历届会议

问题描述:

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

    println(peerID) 

} 

当我使用这行代码的peerID Multipeer连接店,我收到peerIDs历届会议第一,然后它给从当前会话中的新peerIDs。这些数据存储在哪里?有什么方法可以删除存储的;也许可以在View Controller中初始化?我只想从当前会话获取peerID。历届会议

这是控制台日志:

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

只是一个猜测...会话是一个分布式的对象。框架(操作系统)存储分发给参与会话的所有设备的会话数据。您可能需要重新启动所有此类设备才能真正擦除有关会话的所有数据。我无法说明框架如何知道何时删除陈旧或过期的会话。但是,例如,如果设备回到范围内,它可能会长时间保持会话。

+0

任何想法从哪里得到这个更多信息? – 2015-05-25 23:17:19

+0

我同意上面的C4,我很想知道如何清除对象。正如塞迪说的那样,这个发现者会返回虚假的会话。正如你所说,我重新启动设备,我的问题已解决。不是解决方案。 – LevinsonTechnologies 2016-03-12 21:17:05

我无法解决存储问题,但我发现一个解决方法是创建一个空的数组,每次单击按钮(在我的情况下按顺序排列)启动它为空,并将peerID保存在阵列。

~ 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 
} 
} 

存储手动将数据和