È valido utilizzare il modificatore di memorizzazione __weak
nella firma dell'implementazione di un metodo? Soprattutto se non fa parte della firma pubblica del metodo? Per esempio:Utilizzare __weak per modificare l'archiviazione di un parametro nell'implementazione
- (UIView *)tableView:(__weak UITableView *)tableView viewForHeaderInSection:(NSInteger)sectionIndex
{
UIView *view = [ABHeaderView view];
view.actionBlock = ^{
[tableView doSomething];
}
// ...
return view;
}
Questo usare correttamente tableView
come puntatore debole? O dovrei davvero fare qualcosa come __weak *weakTableView = tableView;
e usare weakTableView
all'interno del blocco?
Non ricevo alcun avviso o errore e l'analizzatore statico di clang non genera avvisi.