无效的displayName传递给MCPeerID

时间:2017-06-01 09:56:31

标签: ios ipad multipeer-connectivity mpc

当我尝试传递设备udid +设备名称时,我收到了以下崩溃

  

由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'无效的displayName传递给MCPeerID'

1 个答案:

答案 0 :(得分:3)

init(displayName myDisplayName: String)

来自Apple Docs

  

UTF-8编码中允许的最大长度为 63字节

     

displayName参数可能不是 nil 空字符串

     

如果 displayName 太长,此方法会抛出异常,   空的,或者没有。

在您的情况下,您传递的udid + device name超出了允许的限制,即 63字节(63个字符)

并会抛出异常说:

  

由于未捕获的异常而终止应用   'NSInvalidArgumentException',原因:'传递给无效的displayName   MCPeerID

只需调试:

lengthOfBytes传递之前

打印udid + device name init(displayName myDisplayName: String),它肯定会超出允许的限制。

print((UIDevice.current.name+udid).lengthOfBytes(using: String.Encoding.utf8))