2014-02-19 5 views
5

Как отключить одно предупреждение только в одном месте?Отключить одно предупреждение о неиспользуемой переменной

У меня есть одна переменная, которую я временно не использую. Xcode показывает мне предупреждение о «неиспользуемой переменной». Я хочу отключить предупреждение, но только для этой переменной, а не для всех предупреждений этого типа.

Возможно ли это без установки/получения значения этой переменной?

+0

Ну, вы можете просто NSLog этой переменной. Или вы можете просто игнорировать предупреждение. Любая особая причина, которая вас так беспокоит? – user1349663

+1

Возможный дубликат [Как я могу избавиться от предупреждения «неиспользуемая переменная» в Xcode] (http://stackoverflow.com/questions/5451123/how-can-i-get-rid-of-an-unused-variable -warning-in-xcode) –

+0

@ user1349663 Не очень хорошее предложение просто «NSLog' it. Это просто вызовет загрузку нежелательной почты в консоли, которая не нужна. – Popeye

ответ

7

Из GCC/Specifying Attributes of Variables (понятно, Clang а):

int x __attribute__ ((unused)); 

или

int y __attribute__((unused)) = initialValue ; 
+0

почти, вы должны упомянуть, что если она была написана 'static int x = ...; 'тогда дополнительный код должен быть добавлен в середине:' static int x __attribute__ ((unused)) = ...; " – user2159978

+1

@ user2159978: Это, как правило, так (не только для статических переменных). –

7

Это довольно просто:

#pragma clang diagnostic push 
#pragma clang diagnostic ignored "-Wunused-variable" 
    NSUInteger abc; /// Your unused variable 
#pragma clang diagnostic pop 

Но держать неиспользованную переменную является излишним и в целом плохо идея. Неиспользованный код следует удалить. Если вы используете git, все изменения все еще находятся в вашем репо, и вы можете вернуть код, если обнаружите, что эта переменная необходима.

0

Кратчайший нажатие клавиши ответ, изменение:

int x; // this variable temporarily unused 

к:

// int x; // this variable temporarily unused 

и предупреждение будет идти. Также вы не можете забыть удалить его, когда вам нужна переменная снова, что вы можете сделать с любым подходом, который оставляет объявленную переменную.

Если вы хотите, чтобы удаление, чтобы быть немного более заметным, но хотите сохранить имущество, что вы не можете забыть, чтобы удалить его, попробуйте:

#if 0 
int x; // this variable temporarily unused 
#endif 

HTH

+0

неправильный ответ. Я знаю о комментариях '//' и '#if 0'. Мне нужно отключить только предупреждение, но не удалять/комментировать переменную – user2159978

+0

@ user2159978 - Я задавался вопросом, почему вы хотите сохранить неиспользованную переменную.Одна из причин может заключаться в том, чтобы сохранить объект * размер * таким же, но это маловероятно для объекта Objective-C, поэтому я отказался от него. Можете ли вы сказать, почему вам нужно хранилище, выделенное для переменной, которую вы не используете? Просто любопытно. – CRD

+0

Я ответил в ответ на свой вопрос – user2159978

2
__unused int theInt = 0; 
// there will be no warning, but you are still able to use `theInt` in the future 
Смежные вопросы