我有一个 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,想弄清楚为什么它只能在一个方向上工作。有任何想法吗?