Eu entendo exatamente por que ocorrem avisos de variáveis não utilizadas. Não quero suprimi-los em geral, porque eles são incrivelmente úteis na maioria dos casos. No entanto, considere o seguinte código (inventado).
NSError *error = nil;
BOOL saved = [moc save:&error];
NSAssert1(saved, @"Dude!!1! %@!!!", error);
O Xcode relata que saved
é uma variável não usada, quando é claro que não é. Suspeito que seja porque NSAssert1
é uma macro. A NS_BLOCK_ASSERTIONS
macro não está definida, portanto, as asserções do Objective C estão definitivamente habilitadas.
Embora não machuque nada, acho isso desarrumado e irritante, e quero suprimi-lo, mas não tenho certeza de como fazer isso. Atribuir a variável a si mesma elimina o aviso do compilador, mas prefiro fazer da maneira "certa", se tal coisa existir.
'saved' was marked as unused but was used