RAC源码中 self.next copy 的问题

xzjxylophone 2018-07-13 04:20:51


RACSubscriber.m中:
- (void)sendNext:(id)value {
@synchronized (self) {
void (^nextBlock)(id) = [self.next copy];
if (nextBlock == nil) return;
nextBlock(value);
}
}


为什么不直接按照如下使用?


RACSubscriber.m中:
- (void)sendNext:(id)value {
@synchronized (self) {
if (self.next == nil) return;
self.next(value);
}
}


也就是说为什么在第一段代码非要copy一下block了?
...全文
234 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

29,029

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧