0

この方法を使用して、ios7 のマルチピア経由でファイルを送信しています。

_progressSend = [session sendResourceAtURL:imageUrl withName: info toPeer:peerID withCompletionHandler:^(NSError *error) {
    // Implement this block to know when the sending resource transfer completes and if there is an error.
    if (error) {
        NSLog(@"Send resource to peer [%@] completed with Error [%@]", peerID.displayName, error);
    }
    else {
        // Create an image transcript for this received image resource

    }
}];

問題は非常に奇妙です。これが起こることです:

デバイスがリソースの送信を開始し、進行状況バーがいっぱいになり始めます。アプリをバックグラウンドに置いて、たとえばメールを確認すると、転送がまだ進行中です (他のデバイスの進行状況バーから確認できます)。転送が完了し、アプリに戻ると、すべて正常に機能しますが、リソースがまだ転送されている間にアプリに入ると (たとえば、途中で 1/3 終了して 2/3 で開きます) ) アプリが完全にフリーズし、マルチタスク バーから閉じる必要があります。しかし、Xcode はクラッシュを示しません。アプリは実行し続けているかのようですが、ユーザー インターフェイスは完全にフリーズしています。誰かアイデアがありますか??

4

2 に答える 2

0

この問題は、別の種類の方法でもありました。プログレス バーを更新するコードの部分では、このブロック内にコードを配置して、メイン ヘッドを呼び出すようにする必要があります。

dispatch_async(dispatch_get_main_queue(), ^{  
//insert progress bar code here
});

なぜこれが起こるのかわかりませんが、これで修正されたようです。

于 2014-01-20T19:44:03.497 に答える