2016-09-19 87 views

回答

0

就拿localParticipant ID,加入到它的remoteParticipants ID) 类似的东西:

var conversationID = yourConversation.localParticipantIdentifier 

for participant in yourConversation.remoteParticipantIdentifiers { 
    conversationID += participant 
} 

编辑: 正如评论注意到,通过这样做,你可以结束了一个很长的ID 。所以我们的想法是对它应用一个散列,以便拥有一个恒定的大小(MD5是足够的,我们在这里不需要安全的东西)。如果它仍然太长,您可以裁剪该散列,但请注意,在这种情况下,两次对话具有相同ID的可能性很小(取决于您的裁剪多少)。

+0

为什么不呢,我想类似的东西,虽然可能会导致很长,如果有很多参与者的..也许一个哈希.. – Fmessina

+0

是的散列它,如果你想要的东西更短的作物,再经过;)这就是我在我的游戏 – RomOne

+0

Yep MD5对我来说也是足够的。我会尽快尝试,并回到你身边:) – Fmessina

0

current top answer有一个腐败问题,如果一个新的人被添加到组聊天(或如果有人被删除),你的散列ID将改变。

我认为更优雅的解决方案是在创建第一条消息时创建自己的序列号,并将其作为元数据添加到消息本身。 (当然使用NSURLComponents)。然后,只要随时打开邮件(从而启动邮件应用程序)并使用该ID即可。只要将它保存在发送/接收的任何消息的标题中即可。

但是,这取决于你真正想要做什么。我提供的解决方案非常适合基于回合制的多人游戏。这可能不适合其他情况。