多重连接崩溃尝试从对象插入nil对象[2]

时间:2013-11-02 23:08:32

标签: ios objective-c

在我的应用程序中,我使用多对等连接通过蓝牙发送文件。我发现了一个非常奇怪的案例,导致应用程序崩溃并始终出现相同的错误:

1)两个设备已连接 2)两个断开连接之一并进入后台 3)其他用户邀请此对等方进入会话,此设备上的应用程序崩溃

为了不遇到崩溃,需要重新加载NSNearbybrowser并重新开始浏览。但是当设备进入后台时,丢失的方法不会立即被调用,因此无法知道何时重新加载。有人问过类似的问题,但我从未见过这个错误:

enter image description here

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[2]'

是我的错误还是苹果?如果是这样我该怎么办?

2 个答案:

答案 0 :(得分:0)

您可能有兴趣阅读Apple的this doc(声明您的应用程序支持的后台任务部分),了解即使在后台模式下保持蓝牙通信活跃的方式。

  

必须声明对某些类型的后台执行的支持   由使用它们的应用程序推进。在Xcode 5及更高版本中,您声明   您的应用支持的背景模式来自的功能选项卡   你的项目设置。启用“背景模式”选项会添加   UIBackgroundModes是您应用的Info.plist文件的关键。

答案 1 :(得分:0)

对我来说,我使用MC Framework遇到了同样的崩溃,但没有使用蓝牙。

相反,我的问题是,每当我尝试从浏览器中邀请时,我都在创建MCPeerID,而不是保留在实际浏览过程中给我的原始内容。

当我调用邀请时,保持原始的MCPeerID对象使应用程序停止崩溃。