如果我有一个连接的对等点数组,假设3 (a->b,a->c,a->d),我只想断开对等点"c“,我应该做什么?
我看到了对类似问题的一个答复,即您只能将“您自己”与会话断开:这意味着在上述场景中,如果我这样做的话:
[mySession disconnect];我把"a“和"b”、"c“和"d”同时断开。因此,建议发送一个通知给您想要断开连接的对等方("c"),并告诉它断开与会话的连接。
然而,我也看到了这一点,并且怀疑它是否做了我所要求的--只删除了特定的对等点:
[mySession.connectedPeers[0] disconnect];编辑:我刚刚意识到这是一个只读属性,所以忽略这个部分。
或者还有另外一种,或许更好的方法来去除特定的同行?
发布于 2014-05-03 04:26:01
每个对等连接都由MCSession的一个实例表示.因此,在您的示例中,您将有3个指向MCSession对象的唯一指针:
MCSession *p1 = a->b
MCSession *p2 = a->c
MCSession *p3 = a->d因此,要断开对等点c,您将:
[p2 disconnect]; // release the session
p2 = nil; // release the resource当然,您可以将会话存储在可变数组中,然后执行相同的逻辑,但是可以使用数组中的指针。
p2 = (MCSession *)[array objectAtIndex:1];
[p2 disconnect];
[array removeObjectAtIndex:1];https://stackoverflow.com/questions/23435754
复制相似问题