Does -dataWithContentsOfURL: of NSData work in a background thread?
Also you may use -dataWithContentsOfURL + NSOperation + NSOperationQueue