Может кто-нибудь скажет мне, почему следующее Предупреждает меня «неиспользуемая переменная переменная str»? SetAccessibilityLabelForView - это MACRO.iOS: проблемы с использованием переменных внутри MACRO
NSString *str = [NSString stringWithFormat:dynString, index];
SetAccessibilityLabelForView(myView, str);
dynamicString является установкой в одноплодном классе как "dynamic%d"
.
Macro:
#if RUN_TESTS
#define SetAccessibilityLabelForView(view, label) view.accessibilityLabel = label
#else
#define SetAccessibilityLabelForView(view, label)
#endif
ВНИМАНИЕ приходит для обоих случаев, когда RUN_TESTS истинным или ложным, но если я удалил еще часть, то предупреждение уходит!
Я попытался с помощью следующих действий, чтобы избавиться от предупреждения,
SetAccessibilityLabelForView(myView, [NSString stringWithFormat:dynString, index])
, что дает мне ошибку: «Слишком много аргументов, чтобы функционировать, как вызов макроса»!
Тогда я изменил мой макрос следующий,
#if RUN_TESTS
#define SetAccessibilityLabelForView(view, label, ...) view.accessibilityLabel = label
#else
#define SetAccessibilityLabelForView(view, label, ...)
#endif
Теперь же линии работает, когда RUN_TESTS FALSE, но дает ошибку «Прогнозный„]“», когда RUN_TESTS ИСТИНА !! Уф !!
Может кто-то, пожалуйста, помогите мне здесь. Я хочу, чтобы макрос работал для обоих случаев, но просто хочу игнорировать строки, созданные макросом, когда RUN_TESTS FALSE.
Сообщения макроса кода пожалуйста – Stavash
Я был бы удивлен, если предупреждение из-за макроса, но в любом случае я редактировал вопрос. – applefreak
Я удивлен :) Я думаю, что это происходит потому, что в другом варианте я не использую «ярлык»! Могу ли я обойти это? – applefreak