NSURLSession を使用してサーバーにファイルをアップロードしたいと考えています。
ケース: 1. アプリのクラッシュによりサーバーへのファイルのアップロードが停止した場所から、サーバーへのファイルのアップロードを再開する必要があります。2. バックグラウンド アップロードも処理する必要があります。
NSURLSession を使用してサーバーにファイルをアップロードしたいと考えています。
ケース: 1. アプリのクラッシュによりサーバーへのファイルのアップロードが停止した場所から、サーバーへのファイルのアップロードを再開する必要があります。2. バックグラウンド アップロードも処理する必要があります。
AFNetworking Library を試して、画像を非同期でアップロードしてください。このスレッドで簡単な例を見つけることができます。
background を使用する必要がありますNSURLSession。アップロードの進行中にアプリがクラッシュしたり、ユーザーがアプリを離れたりした場合、バックグラウンドNSURLSessionを使用すると、アップロードはバックグラウンドでシームレスに続行されます。アップロードが完了すると、アプリはこれを介して通知されdelegateます (ダウンロードが終了した時点でアプリが動作していなかった場合は、バックグラウンド モードで開始され、その時点で必要なクリーンアップを行うことができます)。 )。
で作成NSURLSessionConfigurationしbackgroundSessionConfigurationWithIdentifier、その構成で をインスタンス化NSURLSessionします。
いくつかの注意事項があります。
完了ハンドラ パターンは使用できません。デリゲートベースの実装を使用する必要があります。
handleEventsForBackgroundURLSessionアプリのデリゲートに実装し、completionHandler渡されたものをキャプチャして、バックグラウンド セッションを再度インスタンス化する必要があります。同様に、NSURLSessionデリゲート メソッドではURLSessionDidFinishEventsForBackgroundURLSession、保存された完了ハンドラを呼び出す を実装する必要があります。
詳細については、URL セッション プログラミング ガイドのバックグラウンド タスクに関する考慮事項、 NSURLSession クラス リファレンスの同じ名前 (ただしテキストは異なる) のセクション、またはApple が最初にバックグラウンドについて紹介した WWDC 2013 What's New in Foundation Networkingを参照してください。セッション。