有很多方法可以做到这一点,但对于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引用不是必要的,但我不能百分之百确定。
weak
。只有在self
和 block 之间存在保留循环的风险时,才需要创建 "weak self"。但是在这段代码中不存在这个问题。 - rmaddy