我需要在两个块中执行相同的一堆代码(我正在使用 ARC):
__weak typeof(self) weakSelf = self;
[_dataProvider doA:^(NSError *error) {
[weakSelf handleError:error];
}];
在另一个地方我打电话:
__weak typeof(self) weakSelf = self;
[_dataProvider doB:^(NSError *error) {
[weakSelf handleError:error];
}];
然后我有我的处理程序:
- (void)handleError:(NSError *)error {
[self.refreshControl endRefreshing];
[self.tableView reloadData];
}
用这种方式省钱吗?请注意该handleError:
方法self
在内部使用。如果不是,那么这里的正确方法是什么?顺便说一句:self 是一个 viewController,可以解除分配(doB: 和 doA: 块是基于网络的,所以可能很慢)。