2017-06-01 27 views
1

当我试图传递器件UDID +设备名称,我收到下面碰撞无效的displayName传递给MCPeerID

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

+0

哪里是代码? – Bilal

回答

2
init(displayName myDisplayName: String) 

Apple Docs

的最大人使用UTF-8编码的可下载长度为63字节

displayName参数可能不是空字符串

此方法,如果的displayName太长, 空,或零抛出异常。

在你的情况,你是路过udid + device name这是超过最大允许即63个字节(63个字符)

极限,将抛出一个异常说:

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

只是为了调试:

打印lengthOfBytesudid + device name通过它在init(displayName myDisplayName: String)之前肯定会超过允许的极限。

print((UIDevice.current.name+udid).lengthOfBytes(using: String.Encoding.utf8)) 
相关问题