問題タブ [nsurlsessionconfiguration]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
22 参照

ios - 追加のヘッダーを割り当てるために変数を使用するにはどうすればよいですか?

3f78124e98419428b7 を保持する変数があります。この文字列を変数に置き換えたい。
どうすればこれを行うことができるか知っている人はいますか?

0 投票する
0 に答える
594 参照

ios - AFHTTPSessionManager posting video swift

I am trying to upload a video in background using AFNetworking > AFHTTPSessionManager Post method. I want it to conitune uploading even if the app is suspended. But I get error while executing this code, it logs no error, and points to nowhere in code. I tried every solution available on other posts regarding my scenario, but couldn't get it working. Plesae check my code below and suggest me solution or link me somewhere to make it work

0 投票する
1 に答える
2017 参照

connection - NSURLSession での接続の再試行

NSURLSession で接続の再試行を実装したいと考えています。「 timeoutIntervalForRequest 」のようにこれを達成するために設定する必要があるパラメーターはありますかNSURLSession は接続を再試行する責任を負います。

これに対するパラメーターがない場合、どうすればこれを達成できますか?

私の現在のコードは次のとおりです。

応答コードが 200 でない場合、この関数は接続を再試行する必要があります。私も同じことができますか?

0 投票する
1 に答える
4046 参照

nsurlsession - AlamofireでbackgroundCompletionHandlerを使用する正しい方法は何ですか?

これを適切に使用する方法については明確ではありませんが、他の人がこの種のことをしているのを見たことがあります:

同様の実装では、この時点completionHandlerpartial apply forwarder for reabstraction thunk helper...

manager基本的に(シングルトンであるにもかかわらず)どこにありますか:

ただし、これにより、次の警告がコンソールに出力されます。

Warning: Application delegate received call to -application:handleEventsForBackgroundURLSession:completionHandler: but the completion handler was never called.

ここにブレークポイントを設定しました。この時点で、メッセージはコンソールに既に表示されておりbackgroundCompletionHandlernil.

Xcode 7.0 を使用して iOS 9 SDK に対してビルドしており、現在 Alamofire 2.0.2 を使用しています。

これは当初、Swift 2.0 ブランチをマージしたときに導入されたと思っていましたが、iOS 8 SDK に対して Xcode 6.4 を使用した以前のコミットのメッセージも表示されています。


更新 1

@cnoon の提案に対処するには:

  • 識別子が一致します。構成とマネージャーはシングルトン内に設定されているため、間違っていることはありません。
  • didSetクラスのonbackgroundCompletionHandler内に追加して印刷すると、警告の前にManagerメッセージがログに記録されます。
  • クラス内でsessionDidFinishEventsForBackgroundURLSessionon に設定されたクロージャの内部を出力すると、警告のにメッセージが出力されます。delegateManager
  • sessionDidFinishEventsForBackgroundURLSessionを呼び出す前にその内部でオーバーライドして出力すると、警告のbackgroundCompletionHandlerにメッセージが出力されます。
  • Xcode プロジェクトがバックグラウンド セッション用に正しくセットアップされていることを確認する方法については、その方法がわかりません。また、その方法に関するドキュメントも見つかりませんでした。

携帯電話からいくつかのスクリーンショットをアップロードしようとしたときに、これらの提案を試すために最初にこの問題を再現できなかったことを覚えておく必要があります.

これを再現できるようになったのは、いくつかの写真を共有しようとした後でした。相関関係があるかどうかはわかりませんが、写真のアップロードに時間がかかることに関連している可能性があります.


更新 2

UIBackgroundModes@Nick が説明したとおりに設定されており、completionHandler()内部で直接呼び出しapplication:handleEventsForBackgroundURLSession:completionHandler:ても警告は表示されません。


アップデート 3

そのため、私は小さいながらも重要な詳細を見落としていたようです。Alamofire.Managerそれを直接公開しないラッパーがあります。その実装の関連部分は次のようになります。

AppDelegateそのコードパスを実行する際に完了ハンドラを設定します。

Alamofire.Managerのインスタンスを公開して直接アクセスする次の変更では、警告が生成されないことを確認しました。

とでAppDelegate

これに基づいて、計算されたプロパティを使用して完了ハンドラーをプロキシすることが問題の原因であると思われます。

このプロパティを公開したくないので、回避策や代替手段を知りたいです。

0 投票する
2 に答える
1699 参照

swift - NSURLSession Swift のサブクラス化中に、イニシャライザが指定されたイニシャライザをオーバーライドしない

NSURLSession クラスをサブクラス化したいのですが、初期化に問題があります。基本的に、コンストラクターをオーバーライドし、authUrlそこで定数を初期化してから、親の init メソッドを呼び出します。

NSURLSession のソース コードから、2 つの初期化子があることがわかりました。

「最長」の init が指定された初期化子であると予想していましたが、そうではありません。その指定されたイニシャライザはinit()、ソース コードでも指定されていないものだと思います。初期化子をオーバーライドして構成をセットアップするにはどうすればよいNSURLSessionConfigurationですか?

0 投票する
2 に答える
201 参照

ios - サーバーからのファイルのダウンロードは失敗し続けますが、同じ obj-c コードが別の環境と IOS アプリで動作します

IOS バージョンは 9、Xcode 7 で、次のコードが機能しません。ただし、IOS バージョン 8、Xcode 6 で動作します。

以下のコードを使用して、サーバーからファイルをダウンロードしています。

エラーが発生し続けます:

ここに GetDocuemntsD があります

*** 画像をドキュメント ディレクトリに保存できますが、ビデオ ファイルをバックグラウンドでダウンロードして進行状況をユーザーに表示したいのですが、失敗し続けます。

そして私のinfo.plistには次のものがあります:

0 投票する
2 に答える
2577 参照

ios - NSURLRequest ごとに異なる有効期限タイムアウトを設定する方法

リクエストごとに異なる有効期限タイムアウトを設定することはできますか?

私が見つけた唯一の方法は、別の NSURLSessionConfiguration で新しい NSURLSession を作成し、timeoutIntervalForResource. Alamofire のようなフレームワークでも同じことが言えます。