Должен ли я постоянно объявлять слабые ссылки на прерывание циклов удержания блоков внутри блоков?Сохранять циклы для блоков внутри блоков
__weak typeof(self) weakSelf = self;
[self setMyBlock:^(id obj, NSUInteger idx, BOOL *stop) {
typeof(self) strongSelf = weakSelf;
[strongSelf doSomething];
[strongSelf setMyBlock:^(id obj, NSUInteger idx, BOOL *stop) {
//do I need to create another weak reference to strongSelf for this block?
[strongSelf doSomething];
}];
}];
блоки могут использовать диапазон переменных из функции, в которой они определены, в вашем случае вы можете использовать weakSelf внешнего блока во внутреннем блоке, не создавайте другого weakSelf –
. Кстати, вы делаете слабые стороны, сильный танец. Вам также нужно проверить, является ли 'strongSelf' нулевым. В этом случае это не имеет никакого значения, но в целом это хорошая идея. – matt
@matt Каков правильный способ сделать слабый сильный танец? –