Quick answer : if it's asynchronous, you don't want to wait the asynchronous method. One of the bests option would be :
The object calling wanting the data should set itself as the object that runs the asynchronous method, and in didReceiveData, you call a method such as
updateData:(NSString *)parsedData
, which handles the newly received dataThe object calling the method should use KVO to observe any change on a property of the object that runs the asynchronous method.
Tell me if you need more informations.