我已经看过很多关于积木的不同答案,我仍然在努力弄清楚如何使用它。
这是我到目前为止所拥有的......
@interface myController ()
typedef void (^CompletionBlock)();
@end
然后我宣布了一个这样的方法:
-(void)reloadDataWithCompletions:(CompletionBlock)completionBlock{
[self.tableView reloadData];
completionBlock();
}
我不知道该怎么做才能在completionBlock中编写代码。我是否写了另一个名为completionBlock的方法?喜欢这个
-(void) completionBlock{
// do something here once the first method is finished?
}
答案 0 :(得分:2)
您需要调用传递要执行的块的reloadDataWithCompletions:
方法。像这样:
[self reloadDataWithCompletions:^{
// The code you want executed in the block
}];
BTW - 在这种情况下不需要块。只有在处理在其他线程上进行的异步调用时才需要完成块。由于您的reloadDataWithCompletions:
方法仅在表视图上调用reloadData
,并且由于该方法是同步的,因此使用块是没有意义的。
在这种情况下你会得到相同的结果:
-(void)reloadData {
[self.tableView reloadData];
}
并将其称为:
[self reloadData];
// code you want executed after the reload is done