Я пытаюсь выполнить простой тест публикации службы Bonjour локально в Swift. Я делаю это с помощью простого приложения с одним представлением, которое просто создает объект netService и пытается опубликовать его sh. Когда я запускаю приложение, оно не может опубликовать sh, и делегат вызывает функцию didNotPubli sh, генерирующую ошибку
code -72004 («Не указан обязательный аргумент, когда инициализация экземпляра NSNetService ").
Я не могу понять, каким может быть отсутствующий аргумент, так как я указал каждый из домена, типа, имени и порта.
class ViewController: NSViewController, NetServiceDelegate {
var netService : NetService?
override func viewDidLoad() {
super.viewDidLoad()
//initialize the NetService object
self.netService = NetService(domain: "local.", type: "testService._tcp.", name: "netServiceTest", port: Int32(80))
//assing NetService delegate to ViewController object
self.netService!.delegate = self
//publish it
self.netService!.publish()
}
override var representedObject: Any? {
didSet {
// Update the view, if already loaded.
}
}
//netservice delegate functions
func netService(_ sender: NetService, didNotPublish errorDict: [String : NSNumber]) {
print("uh oh, could not publish netService. domain:\(netService!.domain) type:\(netService!.type) name:\(netService!.name) port:\(netService!.port)")
print("error code:\(errorDict)")
}
func netServiceDidPublish(_ sender: NetService) {
print("netService published.")
}
func netServiceDidStop(_ sender: NetService) {
print("netService stopped.")
}
func netServiceWillPublish(_ sender: NetService) {
print("Service will publish, apparently")
}
}