Multipeer Session Disconnects发送大文件/图像时

时间:2015-02-11 05:35:04

标签: memory-management ios8 uiimagepickercontroller multipeer-connectivity mcsession

我在我的应用中使用多种连接功能。我有一个奇怪的问题,即我能够发送和接收消息(聊天)。但是在文件共享的情况下,我使用

sendResourceAtURL:resourceURL withName:fileName toPeer:peer1

但是当发送大文件,即(超过1Mb)应用程序崩溃时,即当我使用图像选择器控制器共享从照片应用程序中获取的文件时。多重连接也不支持断点,我无法调试它。任何可能的解决方案吗?它是一个内存问题(由于高内存使用而崩溃?)我使用ios 8.1.3(设备)和ios 8模拟器。我还检查了两个设备的b / w,但仍然崩溃。请帮助!!!!

1 个答案:

答案 0 :(得分:1)

发送具有多对等连接的数据或文件仅适用于少量数据 - 几千字节即可,但发送超过大约一兆字节会导致数据失败。如果您需要发送更多,则需要使用流。要建立输出流,请在会话建立时启动它

-(void)session:(MCSession *)session peer:(MCPeerID *)peerID didChangeState:(MCSessionState)state
{
    switch(state)
    {
        // ...
        case MCSessionStateConnected:
            self.outputStream = [session startStreamWithName:@"Stream" toPeer:weakSelf.remotePeerID error:&error];
            break;
        // ...
    }
}

对于您的输入流,请实施

-(void)session:(MCSession *)session didReceiveStream:(NSInputStream  *)stream withName:(NSString *)streamName fromPeer:(MCPeerID *)peerID
{
    self.inputStream = stream;
}

一旦你有了两个流你就可以打开它们并开始阅读和写作。