Swift 为什么我不能在同一个函数中调用searchForBrowsableDomains和searchForServicesOfType?
我认为Runloop的使用可能有问题。我不确定是否与以下问题有关: 这是我的密码:Swift 为什么我不能在同一个函数中调用searchForBrowsableDomains和searchForServicesOfType?,swift,nsnetservicebrowser,Swift,Nsnetservicebrowser,我认为Runloop的使用可能有问题。我不确定是否与以下问题有关: 这是我的密码: import Foundation class Discover: NSObject, NSNetServiceBrowserDelegate { var browser:NSNetServiceBrowser; var done:Bool = false; init() { browser = NSNetServiceBrowser(); supe
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,我可以在委托函数中获得结果
但是,如果我一个接一个地调用,则永远不会调用委托函数
为什么会出现这种情况?您需要在委托回调可选func netServiceBrowser(浏览器:NSNetServiceBrowser,DidFindDomainString:String,moreComing:Bool)中调用browser.searchForServicesOfType(“http.\u tcp”,inDomain:domainString)