从MCSession断开个别对等体的连接?

时间:2014-05-02 19:41:17

标签: objective-c ios7 multipeer-connectivity

如果我有一组连接的对等体,让我们说3(a-> b,a-> c,a-> d) 我只想断开同伴“c”,我该怎么办?

我已经看到一个对类似问题的回复表明你只能将'自己'与会话断开连接:这意味着在上面的场景中如果我这样做:

[mySession disconnect];

我同时将“a”从“b”,“c”和“d”断开。 所以建议是向你想要断开连接的对等体(“c”)发送通知,并告诉它断开与会话的连接。

但是,我也看到了这一点,并想知道它是否符合我的要求 - 仅删除特定的同行:

[mySession.connectedPeers[0] disconnect];
编辑:我刚刚意识到这是一个只读属性,所以忽略这一部分。

或者还有另一种可能更好的方法来删除特定的同伴吗?

1 个答案:

答案 0 :(得分:3)

每个对等连接由MCSession的实例表示。 因此,在您的示例中,您将有3个指向MCSession对象的UNIQUE指针:

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];