2017-06-01 3 views
1

Quand j'ai essayé de passer périphérique UDID + nom de l'appareil, j'ai reçu ci-dessous accidentincorrect displayName passé à MCPeerID

Mettre fin application en raison d'une exception non interceptée « NSInvalidArgumentException », motif: « invalide Sélectionnez passé à MCPeerID »

+0

où est le code ?? – Bilal

Répondre

2
init(displayName myDisplayName: String) 

De Apple Docs:

Le al maximale La longueur inférieure est 63 octets en codage UTF-8.

Le paramètre displayName ne peut pas être nul ou chaîne vide.

Cette méthode déclenche une exception si la valeur displayName est trop long, vide ou nul.

Dans votre cas, vous passez udid + device name qui dépasse la limite autorisée, à savoir 63 octets (63 caractères)

et jetteront une exception en disant:

Mettre fin application en raison de exception non interceptée 'NSInvalidArgumentException', raison: 'nom d'affichage invalide transmis à MCPeerID

Juste pour Debug:

impression lengthOfBytes pour votre udid + device name avant de le transmettre à init(displayName myDisplayName: String) il dépasse certainement la limite autorisée.

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