__weak __typeof(self)weakSelf = self;
object.block = ^{
__strong typeof(weakSelf)strongSelf = weakSelf;
// code here
}
- 在 block 之前聲明一個 weakSelf 指向 self 是為了避免循環(huán)引用。
- 在 block 中聲明 strongSelf 是一旦進(jìn)入了 block , 就不允許 self 在執(zhí)行過程中釋放掉。block 執(zhí)行完之后會 strongSelf 會自動釋放,不會出現(xiàn)循環(huán)引用的問題。