每次使用阻止我都应该削弱自我

时间:2015-04-21 13:16:06

标签: ios ios7 ios5 objective-c-blocks

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

[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];
}];

我知道,例如,如果我们将[KNApi getCouponsWithSearchString...作为自我类中的块属性,则会导致问题。

假设我们的堆栈将被销毁,之前我将获得成功调用。请问自己会引起问题吗?

2 个答案:

答案 0 :(得分:1)

这取决于。 KNApi是否保留该区块?自我保留KNApi吗?它的作用是什么,它保留了很强的自我。它与任何其他保留没有什么不同。只要你确定该块发生了什么,你就不必虚弱地保留自己。

答案 1 :(得分:0)

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

查看此部分,在"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