2017-06-01 54 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)) 
相關問題