2015-04-21 8 views
1

Будет ли этот блок вызвать проблему утечки памяти, потому что я не использую weakified продать:Должен ли я weakify и настраивает каждый раз используя блок

[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... как блок собственности в себе класс , то это вызывает проблему.

Итак, предположим, что наш стек будет уничтожен, и до этого я получу успешный вызов. Это вызовет проблему с запросом?

+1

Нет вопрос там. Взгляните на объяснение http://stackoverflow.com/questions/20030873/always-pass-weak-reference-of-self-into-block-in-arc –

+0

@JakubVano, спасибо, я думаю, что прочитал об этом раньше , но вы связываетесь с этими ответами, действительно полезными !!! –

ответ

1

От этого зависит. Сохраняет ли KNApi блок? Сохраняет ли себя KNApi? Что делает блок, он сохраняет себя сильно. Это ничем не отличается от любых других. Вам не нужно слабо удерживать себя, пока вы уверены, что происходит с блоком.

+0

yep @JakubVano комментарий с полезным [link] (http://stackoverflow.com/questions/20030873/always-pass-weak-reference-of-self-into-block-in-arc). Таким образом, в коде KNApi не сохраняется блок. сам тоже нет. –

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

+0

похоже, что у вас есть правильная точка зрения, но это действительно зависит, http://stackoverflow.com/questions/20030873/always-pass-weak-reference-of-self-into-block-in-arc –