Does -dataWithContentsOfURL: of NSData work in a background thread?
I'm guessing this has changed a bit over the years. But, these days,
NSURLRequest* request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:urlString]];
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse* response, NSData* data, NSError* error) {
}];
will give you an async network call.