1

ピア 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 つしか持っていませんが、一方向にしか機能しない理由を知りたいと思っています。何か案は?

4

1 に答える 1

0

iOS 7.0 から 7.1 にアップグレードすることで問題を解決できました (XCode もアップグレードしました)。これで、ファイルは 2 台の iPad デバイス間で完全に機能し、シミュレータと 1 台の iPad デバイス間でも機能します。

于 2014-07-17T12:36:01.800 に答える