I\'m getting an image over HTTP, using NSURLConnection, as follows -
NSMutableData *receivedData;
- (void)getImage {
self.receivedData = [[NSMutableDat
I fixed this problem by using an NSMutableDictionary.
NSMutableDictionary *dataDictionary;
In my loadData function, I define my data:
NSMutableData *receivedData = receivedData = [[NSMutableData alloc] init];
Then I load the data into my dictionary where the key is [theConnection description] and the object is my data.
[dataDictionary setObject:receivedData forKey:[theConnection description]];
That way in the delegates, I can look up the correct data object for the connection that is passed to the delegate and save to the right data instance otherwise I end up with the JPEG munging/corruption problem.
In didReceiveData, I put:
//get the object for the connection that has been passed to connectionDidRecieveData and that object will be the data variable for that instance of the connection.
NSMutableData *theReceivedData = [dataDictionary objectForKey:[connection description]];
//then act on that data
[theReceivedData appendData:data];
Similarly, in didReceiveResponse, I put:
NSMutableData *theReceivedData = [dataDictionary objectForKey:[connection description]];
[theReceivedData setLength:0];
And in connectionDidFinishLoading: NSMutableData *theReceivedData = [dataDictionary objectForKey:[connection description]]; img = [[UIImage alloc] initWithData:theReceivedData];
And this seems to work very well. By the way, my code is based on Apple's tutorial for NSUrlConnection with the addition of an NSMutableDictionary to keep track of individual connections. I hope this helps. Let me know if you want me to post my full image handling code.