iOS Multipeer 连接框架invitationHandler 似乎不接受?

2023-11-21

我是第一次使用多点连接框架,并且我想要编程(而不是使用助手类)控制。

当我在两个不同的设备上运行代码时,一切都完全按照描述进行,直到“广告商”收到委托回调为止:

浏览客户端的委托回调在发现广告商时被调用:

-(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];

}

然后,广告客户端的委托回调在收到邀请时被调用:

-(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];
}

调用“invitationHandler(YES, _session)”后,“浏览”客户端和“广告”客户端之间似乎从未建立连接。

我在任一客户端设备上的 MCSession 对象上从未收到过任何委托回调(我收到过一次或两次 MCSessionStateNotConnected )。我本以为我会收到 MCSession 委托回调:

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

我错过了什么吗?还有其他人遇到过这个问题吗?


苹果显然已经意识到了一个错误。

这就是导致这一发现的原因:为什么我的 MCSession 对等点会随机断开连接?

您必须实现以下委托回调,即使它在文档中被列为可选...

- (void) session:(MCSession *)session didReceiveCertificate:(NSArray *)certificate fromPeer:(MCPeerID *)peerID certificateHandler:(void (^)(BOOL accept))certificateHandler
{
 certificateHandler(YES);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS Multipeer 连接框架invitationHandler 似乎不接受? 的相关文章

  • 如何将相机中的图像保存到 iPhone 图库中的特定文件夹?

    嘿 我是 iPhone 新手 最近我一直在尝试制作一个应用程序 基本上 我想要做的是 如果用户将从相机捕获任何图像 那么它应该保存在设备库中 我知道如何将照片保存在图库中 它对我有用 但我无法将所有捕获的图像保存到设备图库中的特定文件夹 例
  • ios7 navigationController PushViewController 动画错误

    看来我在 navigationController PushViewController 方法中发现了一个错误 为了重新创建它 我采用了示例主详细信息项目并对 didSelectRow method void tableView UITab
  • AVCaptureSession 具有多个方向问题

    我正在尝试实现条形码扫描仪 我有一个 AVCaptureSession 它从 AVCaptureDevice 接收视频 我想支持所有方向 使用以下代码 当我运行应用程序时 纵向一切正常 然而 在横向方向上 视图会旋转 但视频输入不会旋转 所
  • Parse.com 和 Facebook 登录,运行无限循环

    我将 Parse 和 Facebook iOS SDK 都更新到了最新版本 当我尝试使用 Facebook 登录时 我的应用程序崩溃了 从调试器中我可以看到它正在无限循环中调用 3 4 个方法 我的登录代码如下所示 void openSes
  • 在 SwiftUI 中使用分段式选取器在两个页面之间滑动

    我有一个Picker with pickerStyle SegmentedPickerStyle 使其成为分段控件 我想让页面在之间平滑滑动 而不是使用条件语句替换视图 这是我迄今为止所做的 gif 这是到目前为止的代码 由if 而不是在不
  • 自定义 UITableViewCell 选择样式?

    当我点击我的UITableViewCell 当我单击单元格时 背景部分 我的背景图像未覆盖的区域 会变成蓝色 另外 所有的UILabel单击时单元格上的 s 变为白色 这就是我想要的 然而 我不想要的是当我点击它时的蓝色背景 但如果我这样做
  • 如何在 iOS 中更改部分透明图像的颜色?

    我有一个具有部分透明度的单色图像 我有正常版本和 2X 版本的图像 我希望能够用代码将图像着色为不同的颜色 下面的代码适用于普通图像 但 2X 最终会出现伪影 正常图像可能有类似的问题如果是这样 由于分辨率的原因我无法检测到它 UIImag
  • 所需框架与静态库

    构建现代框架 https developer apple com videos play wwdc2014 416 says 每个应用程序都有自己的自定义框架副本 https stackoverflow com a 15262463 242
  • iOS 滚动视图允许滚动过去的内容

    我正在努力优化我的应用程序以适应横向和较小的屏幕 我主要使用滚动视图来实现这一点 在我的其中一个视图中 我有一个容器视图 当我在故事板中的设备之间切换时 这个容器视图看起来很完美 容器视图映射到具有滚动视图的视图控制器 该滚动视图的顶部 底
  • 错误:更改核心数据模型后架构armv7的重复符号

    我有一个使用核心数据框架的应用程序 我工作得很好 我刚刚更改了数据模型 向一个实体添加一个属性 当我尝试构建它时 出现错误 duplicate symbol OBJC METACLASS AccountFolder in Users XXX
  • 关于窗口层次结构的警告

    我的调试器中出现这样的警告 这是什么意思 Warning Attempt to present
  • 我的游戏中应该有多少个视图控制器?

    我开始使用 spritekit 构建我的第一个游戏 现在我只有一个视图控制器来呈现开始屏幕场景 override func viewDidLoad super viewDidLoad let scene StartScreenScene C
  • UICollectionView 拖放文件夹创建

    我正在使用 UICollectionView 创建 iOS 画廊应用程序 我希望用户能够拖放图像来重新排序图库并创建文件夹 类似于 iPhone 上的主屏幕 我发现了以下内容tutorial http nshint io blog 2015
  • 在 UIImage 顶部绘制透明圆圈 - iPhone SDK

    我在尝试找出如何在 UIImageView 中的 UIImage 顶部绘制透明圆圈时遇到了很多麻烦 谷歌给了我线索 但我仍然找不到有效的例子 有没有人知道的例子可以证明这一点 最简单的方法就是创建一个半透明的方形 UIView 然后将其图层
  • 为什么我的视图仍然以横向呈现?

    我的视图是由导航控制器控制的 因此我将导航控制器支持的方向设置为明确的纵向和纵向UpSideDown 这可以工作 但是如果调用视图时前一个视图处于横向状态 它将以横向方式呈现并保持横向状态 直到设备旋转 如何防止这种情况发生 这是我的代码
  • 避免 UIImage 的 imageNamed - 内存管理

    我正在经历这个链接 http akosma com 2009 01 28 10 iphone memory management tips 我遇到了一个点避免 UIImage 的 imageNamed 出于什么原因我们应该避免这种情况 它会
  • 如何反转 CGPath 的点顺序

    我想画一个圆圈 并用它打出字母 为此 我需要顺时针抚摸圆圈 逆时针抚摸字母 这一切都很好 但是当我使用 Core Text 获取字母路径时 我不知道如何从本质上反转该路径 不是镜像或旋转或任何东西 这很简单 我希望点笔画顺序是逆时针的 这实
  • Swift C 回调 - Swift 类指针的 takeUnretainedValue 或 takeRetainedValue

    我有一些UIView or UITableViewCell 里面我有 C 回调 例如 CCallback bridge self observer data gt Void in let mySelf Unmanaged
  • 分发内部业务 IOS 应用程序

    我遇到了 IOS 应用程序分发的一个令人困惑的部分 因此 我需要简单细分一下我的限制 即仅将我的应用程序分发给我的员工 同事或任何被视为 内部 的人 这是表明我不希望该应用程序出现在应用程序商店中的另一种方式 我的情况是我为几家公司开发 他
  • IPV6 快速可达性

    我是 swift 和 xcode 的新手 并且我的应用程序因 IPV6 而被拒绝 性能 2 1 当我们执行以下操作时 您的应用程序会在运行 iOS 9 3 5 并连接到 IPv6 网络的 iPad 和 iPhone 上崩溃 具体来说 当我们

随机推荐

  • 确定特定的 JDK 方法通常是否具有内在实现

    除了阅读 OpenJDK 源代码 我并不反对 之外 是否有一个相当全面 或 官方 的列表内在操作在 Hotspot JVM 中 比如 Intel 例如 确定是否存在的最快方法是什么Math abs 无论在哪里使用 通常都会直接转换为一些本机
  • IronPython ImportException:没有名为日志记录的模块

    我让 IronPython 在单声道上工作正常 但它不导入logging模块 执行这段代码 ScriptEngine engine Python CreateEngine dynamic logging engine ImportModul
  • C#中基于文件系统的B+树实现

    C 中是否有基于文件系统的 B 树实现 开源 我找到了一些项目 但这些项目不是基于文件 磁盘 的实现 我专门寻找基于文件系统的 B 树 Update 我添加了一些托管 B 树实施的基准如果您研究这类事情 请供您享受 BplusDotNet
  • Elasticsearch 按数组中的单个嵌套文档键排序

    我有如下所示的文档 这里有两个例子 id 1234 title the title body the body examples evidence source friend source score 15 evidence source
  • CGAffineTransform 旋转方向错误

    在我的实验中 我得出以下结论 YourView transform CGAffineTransformMakeRotation positive value 将顺时针旋转视图 并且 YourView transform CGAffineTr
  • 检查日期何时过去 - Swift

    嗯 标题几乎说明了一切 我想做的是检查日期何时过去 因此 举例来说 假设用户正在使用我的应用程序 然后他们上床睡觉并在早上检查我的应用程序 当我的应用程序打开时 我需要检查这一天是否发生了变化 另外 当应用程序终止或在后台或其他任何情况下
  • 如何使用seaborn在x轴上绘制int到datetime?

    我正在尝试使用seaborn来绘制图表 sns lmplot x when start y how long hue state data apps pd loc apps pd user xavi lowess True Where ap
  • Java 中的子字符串搜索

    我在字符串比较方面遇到问题 例如 有这样一个字符串 hello world i am from heaven 我想搜索这个字符串是否包含 world 我使用了以下函数 但它们有一些问题 我用了String indexof 但如果我尝试搜索
  • R - 使用 PhantomJS 等待页面在 RSelenium 中加载

    我组装了一个粗略的抓取工具 可以从 Expedia 上抓取价格 航空公司 Start the Server rD lt rsDriver browser phantomjs verbose FALSE Assign the client r
  • 使用 optgroup 从 json 创建 html select

    我有一个 JSON 字符串 来自 php json encode 看起来像 var json Foo id 1 name aaa id 2 name bbb Bar id 3 name ccc id 4 name ddd 我希望能够在表单中
  • 基类中的构造函数依赖注入

    我正在使用实体框架构建一个存储库基类 所有实体存储库都将继承该基类 我想注射DatabaseContext在基类中使用 Ninject 使用依赖注入 我认为构造函数注入是正确的方法 但是在派生类中使用构造函数注入来执行此操作 我必须将参数传
  • ASP.NET 多线程 Web 请求

    我正在 ASP NET 解决方案中构建一个页面 该页面从第 3 方 API 服务检索大部分数据 页面本身需要对 API 进行大约 5 次不同的调用才能填充其所有控件 因为对 API 的每个 Web 请求都会带回不同的数据集 我想同时处理在新
  • 如何检测屏幕镜像

    我一直想知道 android API 或任何其他库 框架 中是否有任何方法可以帮助我检测我的设备屏幕是否使用 WiDi Miracast 或 MHL 或基本上任何其他镜像屏幕的技术进行镜像 Br Inx 您可以浏览所有设备显示的列表 并在每
  • Flutter 应用程序可以在 iOS 设备/模拟器上进行调试,但通过 TestFlight 安装后会立即崩溃

    一直在开发一个应用程序 一切都很好 我们可以在模拟器和设备 iOS 和 Android 上进行调试 我们的 Android 应用程序构建良好 APK 已在 Play 商店中发布 另一方面 iOS 应用程序不喜欢通过 TestFlight 进
  • SQL Server中如何对时间字段求和

    我有一个名为 WrkHrs 的列 数据类型是时间 hh mm ss 我想总结一下员工的工作时间 但由于现在数据类型sql server不允许我使用像sum columnname 如何对sql查询中的时间数据类型字段进行求和 SELECT E
  • isset() 会触发 __get 吗?为什么?

    class a function get property obj new a var dump isset obj gt newproperty 似乎答案是否定的 但为什么呢 因为它检查 isset而不是使用 get 检索它 调用 iss
  • Haskell - 使用自定义预处理器打包 cabal 包

    我已经实现了一个自定义预处理器 它从 tpl 文件创建 hs 文件 它被指定在Setup hs通过使用Build Type Custom 一切正常 但我无法从中创建 tar gz 包 使用cabal sdist Cabal 抱怨说 它找不到
  • HTTP 持久连接与 TCP 套接字连接

    From this维基百科上的文章 Keepalive 消息并未正式发布 HTTP 1 0 中支持 在 HTTP 1 1 中所有 连接被认为是持久的 除非另有声明 这是否意味着使用这个 我实际上可以模拟一个机制 TCP套接字连接 用这个我可
  • 找不到 SDWebImage/UIImageView+WebCache.h 文件

    我正在尝试在我的 iPhone 应用程序中使用 SDWebImage 我按照分步教程将 SDWebImage 安装到我的 Xcode 项目中 当我尝试构建我的应用程序时 出现以下错误 Lexical or Preprocessor Issu
  • iOS Multipeer 连接框架invitationHandler 似乎不接受?

    我是第一次使用多点连接框架 并且我想要编程 而不是使用助手类 控制 当我在两个不同的设备上运行代码时 一切都完全按照描述进行 直到 广告商 收到委托回调为止 浏览客户端的委托回调在发现广告商时被调用 void browser MCNearb