0

Iam在我的應用程序中使用多路連接功能。我有一個奇怪的問題,即Iam能夠發送和接收消息(聊天)。但在文件共享的情況下,我用Multipeer Session Disconnects發送大文件/圖像時

sendResourceAtURL:resourceURL withName:文件名toPeer:方1

但是當發送大文件,即(超過1MB)的應用程序崩潰,即當我分享從拍攝的照片文件應用程序使用圖像選擇器控制器。也Multipeer連接不支持斷點,我無法調試它。任何可能的解決方案?它是一個內存問題(由於內存使用率高導致崩潰?)Iam使用ios 8.1.3(設備)和ios 8模擬器。我也檢查了黑白兩個設備,但仍然是相同的crash.Please幫助!

+0

哪個應用程序崩潰?一個發送還是一個接收?請張貼代碼。無法看到你在做什麼而無法提供幫助。 – ChrisH 2015-02-11 19:56:46

+0

嗨,我遇到同樣的問題exaclty,你有沒有找到一種方法來改善/糾正? Thnks – FlavienSi 2015-10-27 13:54:46

回答

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

一旦你有了兩個流,你可以打開它們,並開始閱讀和寫作。