当我尝试传递设备udid +设备名称时,我收到了以下崩溃
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'无效的displayName传递给MCPeerID'
答案 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))