【发布时间】:2014-07-15 11:56:11
【问题描述】:
我有一个适用于 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 兆字节时。
- 两个对等方在传输期间(或之后)永远不会断开连接。
我记录了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,想弄清楚为什么它只能在一个方向上工作。有什么想法吗?
【问题讨论】:
-
如果您尝试使用纯文本文件发送怎么办?
-
我刚试了一下,一个250 Kb的plist文件,同样的问题,文件末尾还缺少一些部分。
标签: ios objective-c ios7 multipeer-connectivity mcsession