alexphilipp
alexphilipp

Reputation: 215

Concurrency with AFNetworking Singleton

I have subclassed AFHTTPSessionManager and added some methods specific to my implementation. I have a couple questions around using my subclass as a singleton and concurrency:

Upvotes: 2

Views: 1894

Answers (1)

Rob
Rob

Reputation: 437552

You asked:

Is creating a singleton of AFHTTPSessionManager still a best practice? (AFNetworking 2.0, iOS7)

I'm not sure if it ever was best practice. Singletons are frequently derided (see What's wrong with singleton?, which has links to lots of arguments against singletons). They are convenient, but for most apps, a singleton for the session manager is unnecessary. My general counsel is that you shouldn't use a singleton unless you have some compelling need to do so.

This is a subject of opinion and debate (which is explicitly frowned upon on Stack Overflow), so I would not suggest we pursue that question further. Follow the links in the above Stack Overflow question, and you'll see many opinions expressed there.

If I make requests ... does this support concurrent operations?

Yes, the network requests run asynchronously and support concurrent operations.

Are these operations on independent operation queues?

At the time I write this, the requests generated via AFHTTPSessionManager are not run on operation queues at all. The session's manager NSURLSession manages the tasks itself.

On the other hand, the NSURLConnection-based AFHTTPRequestOperationManager will run GET and POST requests on a single, concurrent operation queue. If you manually create your own AFHTTPRequestOperation, you can add them to your own queues if you want.

But all of this is academic. I think your real question is whether GET and POST requests run asynchronously, and the answer is "yes". And if the question is whether they run concurrently with respect to each other, again, the answer is "yes".

Upvotes: 6

Related Questions