Objective-C does have asynchronous IO (non-blocking), but that’s for another time. For most purposes, asynchronous is the way to go to avoid blocking the application.

Reading the response

For my purposes, I am storing the data in a struct called GoogleClientLogin to represent Google’s ClientLogin data (that’s simple enough, so I will not list it here). For simplicity, I am not interpreting the response status beyond success (code=200) and failure (code=anything else).