使用MCNearbyServiceBrowser时找不到广告商

时间:2013-12-12 17:28:29

标签: ios multipeer-connectivity

我有一个MultipeerService类,用于启动广告和浏览会话。出于某种原因,我不确定为什么我无法看到任何广告客户。

MultipeerService.m

-(void) startAdvertising
{
    NSString *name = [[UIDevice currentDevice] name];

    MCPeerID *peerId = [[MCPeerID alloc] initWithDisplayName:name];
    self.session = [[MCSession alloc] initWithPeer:peerId];
    self.session.delegate = self;

    self.advertiser = [[MCNearbyServiceAdvertiser alloc] initWithPeer:peerId discoveryInfo:nil serviceType:kServiceType];
    self.advertiser.delegate = self;

    [self.advertiser startAdvertisingPeer];
}

-(void) startBrowsing
{
    NSString *name = [[UIDevice currentDevice] name];

    MCPeerID *peerId = [[MCPeerID alloc] initWithDisplayName:name];
    self.session = [[MCSession alloc] initWithPeer:peerId];
    self.session.delegate = self;

    self.browser = [[MCNearbyServiceBrowser alloc] initWithPeer:peerId serviceType:kServiceType];
    self.browser.delegate = self;

    [self.browser startBrowsingForPeers];
}

我按以下方式启动广告客户:

 _multipeerConnectivityService = [[MultipeerConnectivityService alloc] init];
[_multipeerConnectivityService startAdvertising];

我创建了一个新的multipeerConnectivityService实例,用于浏览和调用startBrowsing方法。

当我在multipeerConnectivityService中检查foundPeer方法时,我看不到任何调用。我做错了什么?

3 个答案:

答案 0 :(得分:1)

您应该实现browser:didNotStartBrowsingForPeers:委托方法。如果调用它,您收到的NSError对象将帮助您诊断问题。

- (void)browser:(MCNearbyServiceBrowser *)browser didNotStartBrowsingForPeers:(NSError *)error
{
    NSLog( @"Unable to start browsing for peers. Error: %@", error );
}

答案 1 :(得分:1)

确保一切都是财产。甚至是您为封装多重连接框架而创建的自定义类。

答案 2 :(得分:0)

将同一会话传递给广告客户和浏览器。会话应该是全球性的,并且应该尽可能长时间运行。