When we need to call self in a block, we usually do as this:
__typeof(&*self) __weak weakSelf = self;
The question is, when you call weakSelf.prop = @"string"
in block, the setter setProp:
will never be called.
But if you define like this:
__typeof(&*self) fakeSelf = self;
The problem solved.
Anyone could explain why? And any potential problem?