Einladung zum iOS Multipeer-Konnektivitäts-FrameworkHandler scheint nicht zu akzeptieren?

Ich verwende zum ersten Mal das Mutlipeer-Konnektivitätsframework und möchte eine programmgesteuerte Steuerung (nicht mit den Assistentenklassen).

Alles funktioniert genau wie beschrieben, wenn ich meinen Code auf zwei separaten Geräten ausführe, bis der "Advertiser" den Delegate Callback erhält:

Der Stellvertreter-Rückruf des Browsing-Clients wird aufgerufen, wenn der Werbetreibende erkannt wird:

-(void)browser:(MCNearbyServiceBrowser *)browser foundPeer:(MCPeerID *)peerID withDiscoveryInfo:(NSDictionary *)info{
    [[[UIAlertView alloc] initWithTitle:@"Peer Found" message:peerID.displayName delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil] show];

    _session = [[MCSession alloc] initWithPeer:_myPeerID];
    _session.delegate = self;

    //connect to the discovered peer.
    [_browser invitePeer:peerID toSession:_session withContext:nil timeout:30.0];
    [_browser stopBrowsingForPeers];

}

Dann wird der Rückruf des Stellvertreters des Werbekunden aufgerufen, wenn er die Einladung erhält:

-(void)advertiser:(MCNearbyServiceAdvertiser *)advertiser didReceiveInvitationFromPeer:(MCPeerID *)peerID withContext:(NSData *)context invitationHandler:(void (^)(BOOL, MCSession *))invitationHandler{

    //when my code runs, everything looks correct here. 
    //eg. peerID is definitely my 'browser' client's display name etc.

    _session = [[MCSession alloc] initWithPeer:_myPeerID];
    _session.delegate = self;

    //using a simple version for testing... accept all invites.
    invitationHandler(YES, _session);

    //stop advertising now.
    [_advertiser stopAdvertisingPeer];
}

Nach dem Aufruf von 'invitationHandler (YES, _session)' scheint die Verbindung zwischen dem 'Browsing'-Client und dem' Advertising'-Client niemals hergestellt zu sein.

Ich erhalte nie Delegate-Rückrufe (ein- oder zweimal erhielt ich einen MCSessionStateNotConnected) für die MCSession-Objekte auf beiden Clientgeräten. Ich hätte gedacht, ich hätte den MCSession-Delegierten-Rückruf erhalten:

-(void)session:(MCSession *)session peer:(MCPeerID *)peerID didChangeState:(MCSessionState)state;

Vermisse ich etwas? Hat jemand anderes auf dieses Problem gestoßen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage