未使用の変数警告が発生する理由を正確に理解しています。ほとんどの場合非常に便利なので、一般的には抑制したくありません。ただし、次の(考案された)コードを検討してください。
NSError *error = nil;
BOOL saved = [moc save:&error];
NSAssert1(saved, @"Dude!!1! %@!!!", error);
saved
Xcodeは、それが未使用の変数であると報告しますが、もちろんそうではありません。これはNSAssert1
マクロだからだと思います。NS_BLOCK_ASSERTIONS
マクロが定義されていないため、ObjectiveCアサーションは確実に有効になっています。
何も害はありませんが、だらしなくて煩わしいので抑制したいのですが、どうしたらいいのかわかりません。変数をそれ自体に割り当てると、コンパイラの警告がなくなりますが、そのようなものが存在する場合は、むしろ「正しい」方法で行います。