Я после этого tutorial на MultiPeerConnectivity (MCF) и список большинство обучающих программ в Интернете, они взяли ярлык использования услуги MCAdvertiserAssistant и MCBrowserViewControllerПочему Мульти Connectivity Peer работает только с MCAdvertiserAssistant и не MCNearbyServiceAdvertiser
Я пытался, реализующим но с использованием MCNearbyServiceAdvertiser и MCNearbyServiceBrowser вместо этого, потому что я заинтересован в настройке обнаружения в своем приложении.
вещи работают хорошо, насколько список близлежащих устройств .. но проблема начинается в MCNearbyServiceAdvertiserDelegate
, где я называю этот метод:
- (void) advertiser:(MCNearbyServiceAdvertiser *)advertiser
didReceiveInvitationFromPeer:(MCPeerID *)peerID
withContext:(NSData *)context
invitationHandler:(void (^)(BOOL, MCSession *))invitationHandler {
// Allow the peer to join this Vibereel
MCSession *peerSession = [[MCSession alloc] initWithPeer:_peerID];
peerSession.delegate = self;
invitationHandler(YES, peerSession);
NSLog(@"Accepted entry request for peer %@", [peerID displayName]);
}
это делает не Активизируйте did change state метод:
-(void)session:(MCSession *)session peer:(MCPeerID *)peerID didChangeState:(MCSessionState)state
, хотя это было сделано с оригинальными версиями.
Я знаю, что мне, очевидно, нужно добавить больше кода, чтобы продемонстрировать проблему .. и поэтому я создал github repo, который начинался с исходного кода. Это commit, который добавляет пользовательские сделал браузер вместе с пользовательской UITableViewController для отображения близлежащих устройств (работает отлично), а вот commit, что делает реклама (не работает)
Можете ли вы отправить код, с которого вы отправляете приглашение? – ChrisH
Я столкнулся с такой же проблемой и окончательно избавился от нее, удерживая сессию в переменной экземпляра. Его странный, но он сработал. –