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を参照してください。セッション。