Iphone 你好!iOS6中的NSNetServiceBrowser不工作

Iphone 你好!iOS6中的NSNetServiceBrowser不工作,iphone,ios6,bonjour,Iphone,Ios6,Bonjour,我正在为本地网络上的手机广告一个桌面客户端。我的手机是6.0.2,Xcode是4.5.2 我知道桌面应用程序正在成功注册,因为我手机上的Discovery应用程序()显示了我在网络上的服务(这也排除了wifi问题) 我已经下载了苹果应用程序示例。查找“\u myservice.\u tcp”的委托从未启动,但启动浏览方法确实启动 我尝试使用(包装DNSService),当启动start browsing方法时,service found方法没有启动 在我自己的应用程序中,我尝试使用NSNetSe

我正在为本地网络上的手机广告一个桌面客户端。我的手机是6.0.2,Xcode是4.5.2

我知道桌面应用程序正在成功注册,因为我手机上的Discovery应用程序()显示了我在网络上的服务(这也排除了wifi问题)

我已经下载了苹果应用程序示例。查找“\u myservice.\u tcp”的委托从未启动,但启动浏览方法确实启动

我尝试使用(包装DNSService),当启动start browsing方法时,service found方法没有启动

在我自己的应用程序中,我尝试使用NSNetServiceBrowser。我设置了委托,我的“netServiceBrowserWillSearch”委托方法被激发,但没有发生其他事情

如果要验证,请附加代码

标题:

#import <UIKit/UIKit.h>
@interface ClientFinder_ViewController : UIViewController<UITableViewDataSource, UITableViewDelegate,NSNetServiceBrowserDelegate>

@property (weak, nonatomic) IBOutlet UITableView *availableClientsTableView;


-(void)netServiceBrowser:(NSNetServiceBrowser *)aNetServiceBrowser didFindDomain:(NSString *)domainString moreComing:(BOOL)moreComing;
-(void)netServiceBrowser:(NSNetServiceBrowser *)aNetServiceBrowser didFindService:(NSNetService *)aNetService moreComing:(BOOL)moreComing;
-(void)netServiceBrowser:(NSNetServiceBrowser *)aNetServiceBrowser didNotSearch:(NSDictionary *)errorDict;
-(void)netServiceBrowserDidStopSearch:(NSNetServiceBrowser *)aNetServiceBrowser;
-(void)netServiceBrowserWillSearch:(NSNetServiceBrowser *)aNetServiceBrowser;

@end
#导入
@接口ClientFinder\u ViewController:UIViewController
@属性(弱、非原子)IBOutlet UITableView*availableClientsTableView;
-(void)netServiceBrowser:(NSNetServiceBrowser*)aNetServiceBrowser didFindDomain:(NSString*)domainString moreComing:(BOOL)moreComing;
-(void)netServiceBrowser:(NSNetServiceBrowser*)aNetServiceBrowser didFindService:(NSNetService*)aNetService moreComing:(BOOL)moreComing;
-(void)netServiceBrowser:(NSNetServiceBrowser*)一个netServiceBrowser未搜索:(NSDictionary*)errorDict;
-(无效)netServiceBrowserDidStopSearch:(NSNetServiceBrowser*)一个服务浏览器;
-(无效)NetServiceBrowser将搜索:(NSNetServiceBrowser*)一个NetServiceBrowser;
@结束
相关实施:

- (void)viewDidLoad
{
    [super viewDidLoad];
    dictionaryFoundClients = [[NSMutableDictionary alloc] initWithCapacity:1];
    [self addLogoToNabar];
    [self listen];
}

-(void)listen{
    NSNetServiceBrowser *serviceBrowser = [NSNetServiceBrowser new];
    [serviceBrowser setDelegate:self];
    [self.netServiceBrowser searchForServicesOfType:TYPE inDomain:domain];
}


-(void)netServiceBrowser:(NSNetServiceBrowser *)aNetServiceBrowser didFindDomain:(NSString *)domainString moreComing:(BOOL)moreComing{
    NSLog(@"aNetServiceBrowser didFindDomain");
}


-(void)netServiceBrowser:(NSNetServiceBrowser *)aNetServiceBrowser didFindService:(NSNetService *)aNetService moreComing:(BOOL)moreComing{
    NSLog(@"aNetServiceBrowser didFindService");
    [dictionaryFoundClients setObject:aNetService forKey:aNetService.hostName];
    NSLog(@"Found service: %@ @ %@", aNetService.name, aNetService.hostName);
}

-(void)netServiceBrowser:(NSNetServiceBrowser *)aNetServiceBrowser didNotSearch:(NSDictionary *)errorDict{
    NSLog(@"aNetServiceBrowser didNotSearch. Errors enumerated");
    for(int a=0; a< errorDict.count; a++){
        NSString *key = [[errorDict allKeys] objectAtIndex:a];
        NSString *val = [errorDict objectForKey:key];
        NSLog(@"%@: %@", key, val);
    }
}

-(void)netServiceBrowserDidStopSearch:(NSNetServiceBrowser *)aNetServiceBrowser{
    NSLog(@"netServiceBrowserDidStopSearch");
}

-(void)netServiceBrowserWillSearch:(NSNetServiceBrowser *)aNetServiceBrowser{
    NSLog(@"netServiceBrowserWillSearch");
}
-(void)viewDidLoad
{
[超级视图下载];
DictionaryFoundClient=[[NSMutableDictionary alloc]initWithCapacity:1];
[自我添加Logotonabar];
[自我倾听];
}
-(空)听{
NSNetServiceBrowser*serviceBrowser=[NSNetServiceBrowser新建];
[serviceBrowser setDelegate:self];
[self.netServiceBrowser searchForServicesOfType:TYPE inDomain:domain];
}
-(无效)netServiceBrowser:(NSNetServiceBrowser*)aNetServiceBrowser didFindDomain:(NSString*)域字符串moreComing:(BOOL)moreComing{
NSLog(@“aNetServiceBrowser didFindDomain”);
}
-(无效)netServiceBrowser:(NSNetServiceBrowser*)aNetServiceBrowser didFindService:(NSNetService*)aNetService moreComing:(BOOL)moreComing{
NSLog(@“aNetServiceBrowser didFindService”);
[dictionaryFoundClients setObject:aNetService forKey:aNetService.hostName];
NSLog(@“找到的服务:%@%@”、aNetService.name、aNetService.hostName);
}
-(无效)netServiceBrowser:(NSNetServiceBrowser*)aNetServiceBrowser未搜索:(NSDictionary*)errorDict{
NSLog(@“aNetServiceBrowser未搜索。已枚举错误”);
对于(int a=0;a
如果这都是本地的,则需要使用searchForServicesOfType:方法,而不是searchForRegistrationDomains方法

-(void)listen{
  NSNetServiceBrowser *serviceBrowser = [NSNetServiceBrowser new];
  [serviceBrowser setDelegate:self];
  [serviceBrowser searchForServicesOfType:@"_your_service_type._tcp" inDomain:@""];;
}

“_your_service_type._tcp”是桌面应用程序在发布其服务时使用的服务类型

不确定它为什么开始工作,但下面是我的工作代码:

    [self stopCurrentResolve];
    [self.netServiceBrowser stop];
    [self.services removeAllObjects];

    NSNetServiceBrowser *aNetServiceBrowser = [[NSNetServiceBrowser alloc] init];
    if(!aNetServiceBrowser) {
        // The NSNetServiceBrowser couldn't be allocated and initialized.
        return NO;
    }

    aNetServiceBrowser.delegate = self;
    self.netServiceBrowser = aNetServiceBrowser;
    [self.netServiceBrowser searchForServicesOfType:type inDomain:domain];

很抱歉,在我发布代码之前,我试图让NSNetServiceBrowser做任何事情。我将编辑我的问题。我现在已经有了答案。这看起来和其他线程类似,我的答案是[here][1][1]: