为什么我不能在同一个函数中调用searchForBrowsableDomains和searchForServicesOfType?

时间:2014-07-22 05:04:26

标签: swift nsnetservicebrowser

我认为使用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,我可以在委托函数中获得结果。

但是,如果我一个接一个地调用,则永远不会调用委托函数。

为什么会这样?

0 个答案:

没有答案