Почему я не могу назвать searchForBrowsableDomains и searchForServicesOfType в той же функции?

Вопрос:

Я думаю, что использование Runloop, вероятно, проблематично. Я не уверен, связано ли это с проблемой, которую я имею ниже:

Вот мой код:

import Foundation



class Discover: NSObject, NSNetServiceBrowserDelegate {
var browser:NSNetServiceBrowser;
var done:Bool = false;

init() {
browser = NSNetServiceBrowser();
super.init();
browser.delegate = self;
};

func netServiceBrowser(aNetServiceBrowser: NSNetServiceBrowser!, didFindDomain domainString: String!, moreComing: Bool) {
println("Find domain \(domainString)");
}

func netServiceBrowser(aNetServiceBrowser: NSNetServiceBrowser!, didFindService aNetService: NSNetService!, moreComing: Bool) {
// println(aNetService);
println("Find servcie \(aNetService)");
}

func discover () {
browser.searchForBrowsableDomains()
browser.searchForServicesOfType("_http._tcp", inDomain: "local");
}
}


let d = Discover();
d.discover();

let runloop = NSRunLoop.currentRunLoop();
runloop.run();

println("Done");

Я обнаружил, что в функции discover, если я вызываю либо searchForBrowsableDomains, либо searchForServicesOfType, я могу получить результат в функции делегата.

Однако, если я вызываю один за другим, функции делегата никогда не вызываются.

Почему это так?

Оцените статью
TechArks.Ru
Добавить комментарий