12
[self.foo setBlock:^{
    [self doSomething]; // causes warning
}];

[self.foo setBlock:^{
    self.bar = baz;     // does not cause warning
}];

「このブロックで強くキャプチャselfすると、保持サイクルが発生する可能性があります」という警告が表示されます。

両方とも強い参照につながりませんか?

4

1 に答える 1

1

これはコンパイラのバグであり、Apple にバグ レポートを提出する必要があります。

a.b = c書き方が違うだけで、どちらも同じ[a setB: c]です。コンパイラが一方を他方とは異なる方法で処理する場合、これはバグです。

于 2013-01-13T15:02:58.383 に答える