如果我有一组已连接的对等点,假设有 3 个(a->b、a->c、a->d)
我只想断开对等点“c”的连接,我应该做什么?
我看到对类似问题的一个答复指出,您只能断开“您自己”与会话的连接:这意味着在上述情况下,如果我这样做:
[mySession disconnect];
我同时将“a”与“b”、“c”和“d”断开。
因此,建议是向您想要断开连接的对等点(“c”)发送通知,并告诉它从会话中断开连接。
但是,我也看到了这一点,想知道它是否符合我的要求 - 仅删除特定的对等点:
[mySession.connectedPeers[0] disconnect];
编辑:我刚刚意识到这是一个只读属性,所以忽略这部分。
或者还有另一种也许更好的方法来删除特定的对等点?
每个对等连接都由 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];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)