我在弱化和强化方面进行了一些讨论。我知道如果有一个保留周期,你需要首先弱化然后强化一个块。
即self(视图控制器)拥有一个拥有块(强参考)的标签,并且在块回调中有一个对self的引用。我知道他们都强烈地相互联系,因此保留周期。
但是,由于phoneviewcontroller的声明是本地的,因此我没有看到任何保留周期,因此下面会有弱化和强化。对此非常困惑。请注意,视图控制器有一个@property副本到setfinishblock。
- (void) doSomething{
PhoneViewController *viewController = [[PhoneViewController alloc] initWithNibName:@"xxxxx" bundle:nil];
@weakify(self)
[viewController setFinishBlock:^(UIImage *image) {
@strongify(self)
[Sharedmanager dosomethign:something];
}];
}
感谢。