Is there any difference between dataWithContentsOfURL (threaded) and dataTaskWithURL?
We're using dataWithContentsOfURL because it is, uh, simple... NSData *datRaw = [NSData dataWithContentsOfURL:ur]; Now, of course, that will hang the main UI thread. So we put it on another thread. We do that exactly thus, -(void)performSearch:(NSString *)stuff then:(void(^)(void))after { dispatch_queue_t otherThread =dispatch_queue_create(nil,0); dispatch_queue_t mainThread =dispatch_get_main_queue(); dispatch_async(otherThread, ^{ self.resultsRA = [self ... calls dataWithContentsOfURL ...]; dispatch_async(mainThread, ^{ if (after) after(); }); }); } (Incidentally, here's an excellent