补充:当我在函数内复制块时出现问题:[块复制]
我已经在使用 __block 来避免保留自我。__block typeof(self) bself = self;
但是,当这个块中有另一个块,并且它使用 bself 时,self 仍然会被保留。
如下面的代码所示,第一个 bself 不会像预期的那样保留 self。然而,第二个自我将保留自我。
__block typeof(self) bself = self;
[layer start:param1
completeHanlder:^{
bself.xx = localxx;
dispatch_async(dispatch_get_main_queue(), ^(void) {
... ...
[bself something];
});
}
];
有人知道背后的原因吗?