ピア Apple の Multipeer Connectivity ライブラリを使用して、あるデバイスから別のデバイスにファイルを送信する必要がある iPad 用のアプリケーションがあります。ファイルは zip ファイル (私は iOS 用の ZipArchive を使用しています: https://github.com/mattconnolly/ZipArchive ) であり、iOS シミュレーターと 1 台の 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);
}
}];
- didFinishRecomingResourceWithName デリゲート メソッド (バックグラウンド スレッドで実行) でファイルを抽出します。
- すべての NSError 変数は (送受信時に) nil であり、問題を示すものは何もありません。
- ファイルのサイズはそれほど重要ではなく、20 Kb の場合も 1 MB を超える場合も同じように動作します。
- 送信中 (または送信後) に 2 つのピアが切断されることはありません。
送受信ファイルのファイル サイズを 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 は 1 つしか持っていませんが、一方向にしか機能しない理由を知りたいと思っています。何か案は?