Недопустимое displayName передано MCPeerID
Когда я попытался передать устройство UDID + имя устройства, я получил ниже сбоя
Завершение работы приложения из-за неперехваченного исключения "NSInvalidArgumentException", причина: "Недопустимое displayName передано MCPeerID"
1 ответ
init(displayName myDisplayName: String)
Из Apple Docs:
Максимально допустимая длина составляет 63 байта в кодировке UTF-8.
Параметр 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))