iOS,获取可用Bonjour服务的“快照”

时间:2015-05-26 21:12:36

标签: ios bonjour nsnetservice nsnetservicebrowser

对于我的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秒'中止'?不知怎的,我需要调用[self.serviceBrowser stop],但我没有看到这样的选择。我该怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

您需要使用NSTimer之类的东西来滚动自己的超时。