我是否应该在每次使用块时削弱自己

Should I weakify self every time using block

这个块是否会导致内存泄漏问题,因为我没有使用弱化销售:

[KNApi getCouponsWithSearchString:self.searchString withCouponsCount:self.coupons.count withSuccess:^(id object) {

    [self.coupons addObjectsFromArray:object[@"items"]];

    [self.hud hide:YES];
    [self.theTableView setHidden:NO];
    [self.theTableView reloadData];

} withFailure:^(id object) {
    [self hideLoadingIndicatorWithError:object];
}];

我知道,例如,如果我们在自身 class 中将 [KNApi getCouponsWithSearchString... 作为块 属性,那么它会导致问题。

所以假设我们的堆栈将被销毁,我将在此之前获得成功的调用。它会导致请求本身出现问题吗?

视情况而定。 KNApi 是否保留块?自我保留 KNApi 吗?块的作用是它强烈地保留自我。它与任何其他保留没有什么不同。只要您确定该块正在发生什么,就不必弱化自我。

是的,你应该使用弱势的自己!这是一个很好的做法

检查此部分,link 下面 "Avoid Strong Reference Cycles when Capturing self"

https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/WorkingwithBlocks/WorkingwithBlocks.html#//apple_ref/doc/uid/TP40011210-CH8-SW16