Swift 3, как разрешить NetService IP?

Просто попробуйте Bonjour в быстром 3

Вот мой код, я могу получить делегата

func netServiceDidResolveAddress(_ sender: NetService) {
 print("netServiceDidResolveAddress service name \(sender.name) of type \(sender.type)," +
                "port \(sender.port), addresses \(sender.addresses)")
}

И вот мой результат

netServiceDidResolveAddress имя службы Mac mini Уэббера типа _myapp._tcp., порт 5678, адреса Необязательно ([<<1002162e c0a80205 00000000 00000000>, <1c1e162e 00000000 fe800000 00000000 00bce7ad 24b4b7e8 08000000]]

c0a80205 - это IP-адрес, который я ищу => 192.168.2.5

И адрес - [Данные], Apple говорит

Адреса службы. Это NSArray экземпляров NSData, каждый из которых содержит одну структуру sockaddr, подходящую для использования с connect (2). Если для службы не разрешены адреса или служба еще не разрешена, возвращается пустой NSArray.

Я все еще не понимаю, почему Data не может использовать .btyes? Как Apple говорит: «Это NSArray экземпляров NSData», но я не могу использовать его как NSData

А как разрешить адрес как читаемую строку IP?

Я пытаюсь это раньше, но не получаю результат, как я, кроме ...

let thedata = NSData(bytes: sender.addresses, length: (sender.addresses?.count)!)
var storage = sockaddr_storage()
thedata.getBytes(&storage, length: sizeof(sockaddr_storage))

if Int32(storage.ss_family) == AF_INET {
    let addr4 = withUnsafePointer(&storage) {UnsafePointer<sockaddr_in>($0).pointee }
    print(inet_ntoa(addr4.sin_addr));
}

Любое предложение поможет, спасибо

Ответы на вопрос(3)

Ваш ответ на вопрос