使用KVO跟踪NSArray计数的变化

时间:2013-10-31 20:19:19

标签: ios

我的应用使用多对等连接将文件发送到IOS7中的其他设备。使用此框架,可以将多个设备连接到MCSession,并且有一个特定的阵列可以为我们提供连接设备数量的计数。我想在这个计数发生变化时收到通知,但我似乎不明白如何使阵列KVO兼容,即使我有如此多的互联网链接和问题。问题是这个数组是外部控制的:

[session connectedPeers];

为了得到我的计数:

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

但它不是改变的数组,而是[session connectedPeers];

如何跟踪此更改?

2 个答案:

答案 0 :(得分:1)

根据文档:([NSArray Class reference])1

  

<强>的addObserver:forKeyPath:选择:上下文

     

NSArray对象不可观察,因此此方法引发异常   在NSArray对象上调用时。而不是观察阵列,   观察数组是集合的to-many关系   相关的对象。

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

答案 1 :(得分:0)

MCSessionDelegate提供session:peer:didChangeState:方法,当任何对等方连接或断开会话时,该方法应通知您。