@weakify(Obj) @strongify(Obj)
这对宏在 RACEXTScope.h 中定义,RACFramework好像没有默认引入,需要单独import
他们的作用主要是在block内部管理对self的引用:
@weakify(self); // 定义了一个__weak的self_weak_变量
[RACObserve(self, name) subscribeNext:^(NSString *name) {
@strongify(self); // 局域定义了一个__strong的self指针指向self_weak self.outputLabel.text = name;
}];
这个宏为什么这么吊,前面加@,其实就是一个啥都没干的@autoreleasepool {}前面的那个@,为了显眼罢了。
这两个宏一定成对出现,先weak再strong