8

広告と閲覧セッションを開始するために使用される 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 メソッドをチェックインすると、何も呼び出されていません。私は何を間違っていますか?

4

3 に答える 3

1

すべてがプロパティであることを確認してください。マルチピア接続フレームワークをカプセル化するために作成したカスタム クラスも含まれます。

于 2015-03-20T17:50:24.370 に答える
1

browser:didNotStartBrowsingForPeers:デリゲート メソッドを実装する必要があります。呼び出された場合、NSError受け取ったオブジェクトは問題の診断に役立ちます。

- (void)browser:(MCNearbyServiceBrowser *)browser didNotStartBrowsingForPeers:(NSError *)error
{
    NSLog( @"Unable to start browsing for peers. Error: %@", error );
}
于 2014-01-22T19:02:49.267 に答える
0

広告主とブラウザの両方に同じセッションを渡します。セッションはグローバルである必要があり、できるだけ長く実行する必要があります。

于 2014-04-04T23:20:00.647 に答える