私が見つけた最も一般的なバグの1つは、次のようなブロックで「自己」を参照した場合です。
...
[self someMethodWhichTakesBlock:^() {
self.something = @"something";
}];
...
私が書くべきものは、もっと次のようなものです。
...
__block MyObject *_self = self;
[self someMethodWhichTakesBlock:^() {
_self.something = @"something";
}];
...
ある種の静的コード分析でこれらの潜在的なバグを見つける方法はありますか?