gpt4 book ai didi

iOS Multipeer Connectivity didReceiveInvitationFromPeer 没有

转载 作者:行者123 更新时间:2023-11-28 19:55:26 25 4
gpt4 key购买 nike

我知道这个问题已经被问过很多次了,但是在阅读了每一个问题多次之后,我仍然无法让我的Multipeer Connectivity 工作。我正在发送但没有收到邀请。这是代码:

@implementation MPCManager

- (id)init {
self = [super init];

if (self) {
_myPeerID = nil;
_session = nil;
_browser = nil;
_advertiser = nil;
}

return self;
}

- (void)automaticBrowseAndAdvertiseWithName:(NSString *)displayName {
_myPeerID = [[MCPeerID alloc] initWithDisplayName:displayName];
_session = [[MCSession alloc] initWithPeer:_myPeerID];
_session.delegate = self;

_advertiser = [[MCNearbyServiceAdvertiser alloc] initWithPeer:_myPeerID
discoveryInfo:nil
serviceType:@"trm-s"];
_advertiser.delegate = self;
[_advertiser startAdvertisingPeer];

_browser = [[MCNearbyServiceBrowser alloc] initWithPeer:_myPeerID
serviceType:@"trm-s"];
_browser.delegate = self;
[_browser startBrowsingForPeers];
}

- (void)session:(MCSession *)session
didReceiveCertificate:(NSArray *)certificate
fromPeer:(MCPeerID *)peerID
certificateHandler:(void (^)(BOOL accept))certificateHandler {
certificateHandler(YES);
}

- (void)advertiser:(MCNearbyServiceAdvertiser *)advertiser
didReceiveInvitationFromPeer:(MCPeerID *)peerID
withContext:(NSData *)context
invitationHandler:(void (^)(BOOL,
MCSession *))invitationHandler {
NSLog(@"This is NOT getting called");
}

- (void)browser:(MCNearbyServiceBrowser *)browser
didNotStartBrowsingForPeers:(NSError *)error {
NSLog(@"%@", [error localizedDescription]);
}
- (void)browser:(MCNearbyServiceBrowser *)browser
foundPeer:(MCPeerID *)peerID
withDiscoveryInfo:(NSDictionary *)info {
NSLog(@"This IS getting called");
}

- (void)invitePeer:(MCPeerID *)peerID {
NSLog(@"This IS getting called");
[_browser invitePeer:peerID toSession:_session withContext:nil timeout:30];
}

我在两个模拟器上运行它,它运行了一段时间,但突然停止了。关于如何或在哪里寻找问题的任何想法?

最佳答案

确保尽可能序列化和重用 MCPeerID 对象。每次调用 - (instancetype)initWithDisplayName:(NSString *)myDisplayName 时,它都会返回一个唯一的实例。

在开发环境中经常发生的事情是,您最终会遇到大量广告商和浏览器,以及 Bonjour 广告空间中的大量重复副本。这可能会导致一切变得不稳定。

如果您使用的是模拟器,那么重置它们可能会有帮助。在硬件上,您可以重新启动或切换飞行模式。

看看this year's WWDC session在名为“跨平台附近网络”的 Multipeer 上。它有一些良好的最佳实践可供遵循,这将大有帮助。

关于iOS Multipeer Connectivity didReceiveInvitationFromPeer 没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26743231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com