对于iOS 6,我如何在后台线程上加载数据,然后更新UI?

有很多方法可以做到这一点,但IOS 6应用程序的当前,现代,正确的方式是什么?

这是我现在正在做的事情:

- (void)viewDidLoad { [super viewDidLoad]; __weak MyViewController *weakSelf = self; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, (unsigned long)NULL), ^(void) { // Do work that will take a long time // Store data in member variables, etc. // Update the UI dispatch_async(dispatch_get_main_queue(), ^{ [weakSelf.myTableView reloadData]; }); } } 

用ARC,我不认为__weak引用是必要的,但我不是100%确定的。

你正在做的是完全正确的路要走! 当你使用块时需要弱引用,而且完全是ARC。 在ARC之前,“弱”还没有存在。