1

我有一个 iPad 应用程序,它需要使用对等 Apple 的 Multipeer Connectivity 库将文件从一台设备发送到另一台设备。该文件是一个 zip 文件(我正在使用适用于 iOS 的 ZipArchive:https ://github.com/mattconnolly/ZipArchive ),我正在使用 iOS 模拟器和一台 iPad 设备对其进行测试。当我将文件从 iPad 发送到模拟器时,它总是可以完美运行,但是当我尝试将它从模拟器发送到设备时,它 90% 的时间都失败了。zip 文件通过,但最后缺少几千字节,因此无法解压缩。我正在使用 MCSession 类,它是用于传输的 sendResourceAtURL 函数:

// self.session is an MCSession object
[self.session sendResourceAtURL:archiveUrl withName:resourceName toPeer:clientPeer withCompletionHandler:
 ^(NSError *error){
     if (error) {
         NSLog(@"File sending error: %@", error.localizedDescription);
     }
 }];
  • 我在 didFinishReceivingResourceWithName 委托方法(在后台线程上运行)中提取文件。
  • 所有 NSError 变量都为零(发送和接收时),没有任何迹象表明有任何问题。
  • 文件的大小并不重要,它在 20 Kb 和超过 1 MB 时的行为方式相同。
  • 两个对等方在传输期间(或之后)永远不会断开连接。

我记录了发送和接收文件的文件大小 3 次:

2014-07-15 12:14:20.470 PeerTest[1139:481f] Sending  file with size of 1182911
2014-07-15 12:14:22.090 PeerTest[1481:1803] Received file with size of 1171552 // failed to extract files

2014-07-15 12:16:25.470 PeerTest[1139:481f] Sending  file with size of 1182911
2014-07-15 12:16:27.882 PeerTest[1481:5127] Received file with size of 1181472 // failed to extract files

2014-07-15 12:17:20.470 PeerTest[1139:481f] Sending  file with size of 1182911
2014-07-15 12:17:22.980 PeerTest[1481:650f] Received file with size of 1182911 // successfully extracted files

我目前只有一台 iPad,想弄清楚为什么它只能在一个方向上工作。有任何想法吗?

4

1 回答 1

0

我设法通过从 iOS 7.0 升级到 7.1 解决了这个问题(也升级了 XCode)。现在该文件在 2 台 iPad 设备之间完美运行,也可以在模拟器和一台 iPad 设备之间运行。

于 2014-07-17T12:36:01.800 回答