2015-04-06 64 views
1
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> 

回答

2

只是一個猜測...會話是一個分佈式的對象。框架(操作系統)存儲分發給參與會話的所有設備的會話數據。您可能需要重新啓動所有此類設備才能真正擦除有關會話的所有數據。我無法說明框架如何知道何時刪除陳舊或過期的會話。但是,例如,如果設備回到範圍內,它可能會長時間保持會話。

+0

任何想法從哪裏得到這個更多信息? – 2015-05-25 23:17:19

+0

我同意上面的C4,我很想知道如何清除對象。正如塞迪說的那樣,這個發現者會返回虛假的會話。正如你所說,我重新啓動設備,我的問題已解決。不是解決方案。 – LevinsonTechnologies 2016-03-12 21:17:05

0

我無法解決存儲問題,但我發現一個解決方法是創建一個空的數組,每次單擊按鈕(在我的情況下按順序排列)啓動它爲空,並將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 
} 
} 

存儲手動將數據和