对于我的iOS应用程序,我想在启动时检查是否有使用Bonjour的特定服务广告,如果有,连接到该主机(而不是指定的URL)。
我已经在我的代码中实现了:
if (self.services) {
[self.services removeAllObjects];
} else {
self.services = [[NSMutableArray alloc] init];
self.serviceBrowser = [[NSNetServiceBrowser alloc] init];
[self.serviceBrowser setDelegate:self];
[self.serviceBrowser searchForServicesOfType:@"_myapp1._tcp." inDomain:@""];
}
如果找到服务,则调用didFindService
,并通过NSNotificationCenter获得结果服务主机名和端口,并照常进行。
如果没有找到服务,我的应用程序停留在那里…等待……(我知道这是预料之中的)。
是否有办法说,例如5秒后'abort'?不知何故,我需要调用[self.serviceBrowser stop]
,但我没有看到这样的选项。我怎样才能做到这一点呢?
您需要使用NSTimer之类的东西滚动您自己的超时