りんごの例では
MyViewController *myController = [[MyViewController alloc] init…];
MyViewController * __weak weakMyController = myController;
myController.completionHandler = ^(NSInteger result) {
MyViewController *strongMyController = weakMyController;
if (strongMyController) {
[strongMyController dismissViewControllerAnimated:YES completion:nil];
}
else {
// Probably nothing...
}
};
ここで何が起きてるの?私は混乱しています: MyViewController *strongMyController = weakMyController;
これは、weakMyController が強い参照を持っているということなので、weakMyController の保持カウント + 1 のようなものでしょうか? 弱い iVar への強い参照を作成するとどうなりますか?