What is preferable to use here and why?
__weak typeof(self) weakSelf = self;
or
__weak MyObject *weakSelf = self;
Obviously, __weak id weakSelf = self;
would be the least desirable, as we would not get type checking, is that correct?
However, between the first two... which is desirable and why?
Also, any reason to use __typeof instead of typeof, if clang supports using typeof?