我有一个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方法时,我看不到任何调用。我做错了什么?
答案 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)
将同一会话传递给广告客户和浏览器。会话应该是全球性的,并且应该尽可能长时间运行。