избегать предупреждения «результат выражения не используется» в блоке - PullRequest
23 голосов
/ 21 января 2012

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

__block NSNumber *pageId=nil;
dispatch_sync(_myDispatchQueue, ^{
    int val;
    //... code generates an int and puts it in val
    pageId = [NSNumber numberWithInt:val];
}];
//pageId used below

Как мне избавиться от этой ошибки?

Ответы [ 2 ]

47 голосов
/ 19 марта 2012
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-value"
 pageId = [NSNumber numberWithInt:val];
#pragma clang diagnostic pop
2 голосов
/ 08 января 2016

Мои экспериментальные данные

Примечание. Я получил это от Intrubidus, но мне потребовалась дополнительная информация, поэтому после эксперимента я записал здесь свои результаты для следующего парня.

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-value"
pageId = [NSNumber numberWithInt:val];
#pragma clang diagnostic pop

Относится только кобласть между игнор и поп.«-Wunused-value» не подавляет неиспользуемые переменные.



Так вы бы подавляли неиспользуемые переменные :

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-variable"
int i = 0;
#pragma clang diagnostic pop



Кроме того, без push и pop , как показано:

#pragma clang diagnostic ignored "-Wunused-value"
pageId = [NSNumber numberWithInt:val];

Тип предупреждения был проигнорирован в любом месте этого файла после #pragma,Кажется, это относится только к рассматриваемому файлу.

Надеюсь, вы нашли это полезным,
- Chase

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