2

多数の異なるビュー コントローラーから同じサーバーに対して多数の異なる REST 呼び出しを行うアプリがあります。に関するベスト プラクティスは何ですかURLSession: 同じ URLSession オブジェクトを共有しますか? それとも URLSessionConfiguration オブジェクトだけですか? それともどちらでも構いませんか?

たとえば、エンドポイントにリクエストを行う場合、

  1. URLSession共有されたURLSessionConfiguration?を使用して、新しい各リクエストをインスタンス化します。

  2. 現在アクティブなアプリ インスタンスに対して1URLSession回だけインスタンスを作成し、それをすべてのリクエストで再利用しますか?

4

2 に答える 2

0

存続期間の長い共有URLSessionオブジェクトは、同時に複数のタスクに影響を与えるクラスのメソッドを使用する必要がある場合にのみ意味があります。たとえば、getTasksWithCompletionHandler(_:)またはを呼び出す必要がある場合finishTasksAndInvalidate()、セッション オブジェクトは、これらのメソッドが影響を与えるすべてのタスクをカバーするのに十分な時間存在する必要があります。

また、その場でそれらを作成すると、同時に複数の同一のインスタンスが発生する場合にも意味があります。

それ以外の場合は、必要なときに を作成し、URLSession不要なときに割り当てを解除します。

どちらの場合でも、共有URLSessionConfigurationオブジェクトを常にメモリに保持するわけではありません。ファクトリ メソッドを作成できるファクトリ メソッドを設定し、必要なときにいつでも呼び出すことができますURLSession

于 2017-08-01T15:02:45.033 に答える