Я точно понимаю, почему появляются неиспользуемые предупреждения о переменных. Я не хочу подавлять их вообще, потому что они невероятно полезны в большинстве случаев. Однако рассмотрим следующий (надуманный) код.
NSError *error = nil;
BOOL saved = [moc save:&error];
NSAssert1(saved, @"Dude!!1! %@!!!", error);
Xcode сообщает, что saved
- это неиспользуемая переменная, хотя, конечно, это не так. Я подозреваю, что это потому, что NSAssert1
это макрос. Макрос NS_BLOCK_ASSERTIONS
определен , а не , поэтому утверждения Objective C определенно включены.
Хотя это ничего не ранит, я нахожу это неопрятным и раздражающим, и я хочу подавить это, но я не уверен, как это сделать. Назначение переменной для себя избавляет от предупреждения компилятора, но я бы предпочел сделать это «правильным» способом, если такая вещь существует.