@strongify是什么原因

在ReactiveCocoa中有一个宏来阻止保留周期@weakify和@strongify。 从我的理解@weakify做我喜欢的事情就是创建__weak引用在块中使用,但是@strongify怎么样?

为什么我需要在块中再次强大?

以下是一些示例用法:

 @weakify(self); [RACObserve(self, username) subscribeNext:^(NSString *username) { @strongify(self); [self validateUsername]; }]; 

如果您只是在块中使用弱引用,则可以在执行块时取消分配self。 但是如果你想确保自己保持在内存中直到块完成执行,你必须将弱引用转换回强引用。