Я использую dataWithContentsOfURL в фоновом потоке, отлично.
-(void)loaddata {
NSData* data = [NSData dataWithContentsOfURL:@"some url"];
if (data == nil) {
DLog(@"Could not load data from url: %@", url);
return;
}
}
Вызовите что-то подобное из основного потока.
[self performSelectorInBackground:@selector(loaddata) withObject:nil];
Если вы хотите выполнить обновление интерфейса в концеloaddata, обязательно вызовите функцию в главном потоке.