2013-10-31 53 views
0

我的應用程序使用多對等連接將文件發送到IOS7中的其他設備。有了這個框架,不止一個設備可以連接到MCSession,並且有一個特定的數組,可以給我們連接的設備數量。我希望在這個計數發生變化時得到通知,但我似乎無法理解如何使陣列KVO兼容,即使我有這麼多的互聯網鏈接和問題。問題是,該陣列由外部控制:使用KVO跟蹤NSArray的計數變化

[session connectedPeers]; 

爲了讓我做計數:

NSArray* array = [session connectedPeers]; 
array.count 

但它不是改變,而是在[會議connectedPeers]數組;

我該如何追蹤這種變化?

+0

'MCSessionDelegate'沒有提供你想要的嗎? – Wain

+0

我不這麼認爲......但可能是。我在文檔中沒有看到任何關於它的信息 – Alessandro

回答

0

MCSessionDelegate提供了session:peer:didChangeState:方法,該方法在任何對等方連接或斷開會話時應該會通知您。

1

根據該文檔:([NSArray的類參考])1

的addObserver:forKeyPath:選擇:上下文:

NSArray的對象不是可觀察到的,所以這種方法會引發異常 當在一個NSArray對象上調用時。而不是觀察一個數組, 觀察數組是相關對象的集合 的多對多關係。

我建議使用Wain提到的MCSessionDelegate方法。