Objective c 超级调用的自内块

Objective c 超级调用的自内块,objective-c,self,weak-references,retain-cycle,Objective C,Self,Weak References,Retain Cycle,在这种情况下,需要weakself来避免保留周期 [self showMethodA:^{ [weakself showMethodB]; }]; 这种情况会导致保留周期吗 [super showMethodA:^{ [self showMethodB]; }]; 是的,它将创建一个保留周期 只有在实际存储块时才能创建保留循环(因为self指向块,而块指向self) 有关更多信息,请参阅以下链接: 它是否创造了一个循环?仅当showMethodA将块存储到self中时 “su

在这种情况下,需要weakself来避免保留周期

[self showMethodA:^{
    [weakself showMethodB];
}];
这种情况会导致保留周期吗

[super showMethodA:^{
    [self showMethodB];
}];

是的,它将创建一个保留周期

只有在实际存储块时才能创建保留循环(因为self指向块,而块指向self)

有关更多信息,请参阅以下链接:


它是否创造了一个循环?仅当showMethodA将块存储到self中时


“super”与“self”仅影响调度,调用超类showMethodA而不是self自己的showMethodA。它不影响循环。是否创建循环取决于showMethodA中的代码

请告诉我self指向代码中我们看到的块的位置。