我的应用使用多对等连接将文件发送到IOS7中的其他设备。使用此框架,可以将多个设备连接到MCSession,并且有一个特定的阵列可以为我们提供连接设备数量的计数。我想在这个计数发生变化时收到通知,但我似乎不明白如何使阵列KVO兼容,即使我有如此多的互联网链接和问题。问题是这个数组是外部控制的:
[session connectedPeers];
为了得到我的计数:
NSArray* array = [session connectedPeers];
array.count
但它不是改变的数组,而是[session connectedPeers];
如何跟踪此更改?
答案 0 :(得分:1)
根据文档:([NSArray Class reference])1
<强>的addObserver:forKeyPath:选择:上下文强>
NSArray对象不可观察,因此此方法引发异常 在NSArray对象上调用时。而不是观察阵列, 观察数组是集合的to-many关系 相关的对象。
我建议使用Wain提到的MCSessionDelegate方法。
答案 1 :(得分:0)
MCSessionDelegate
提供session:peer:didChangeState:
方法,当任何对等方连接或断开会话时,该方法应通知您。