2016-12-29 3 views
11

Я использую нелокализованную строку и получать ниже предупреждениеПодавить User-облицовочный текст должен использовать локализованные строки предупреждения макроса

User-облицовочный текст должен использовать локализованные строки макроса

Как подавить это предупреждение?

ответ

12

С лязгом documentation:

вы можете подавить предупреждения анализатор (и документировать ваши намерения) с функцией, которая просто возвращает свой вклад, но аннотированный вернуть локализованную строку:

__attribute__((annotate("returns_localized_nsstring"))) 
static inline NSString *LocalizationNotNeeded(NSString *s) { 
    return s; 
} 

[field setStringValue:LocalizationNotNeeded(@"Debug")]; 

Некоторые проекты также может оказаться полезным использовать NSLocalizedString, но добавьте «DNL» или «Do not Localize» в содержимое строки

7

в проекте Настройки сборки: «Статический анализатор - проблемы - API Apple» установить «Отсутствующая локализуемость» на №

также убедитесь, что у вас нет локализации, иначе xcode 9 предупредит вас снова включить предупреждения анализатора «Отсутствует локализуемость».

это было сложно для меня, я должен был открыть файл проекта (project.pbxproj) с помощью текстового редактора и вручную очистить список «knownRegions» в противном случае они не будут оставаться удалены

0

Или просто использовать локализованная строка макроса как предложено Xcode:

NSLocalizedString(@"My string that was giving me warnings", nil) 
0

Другая возможность заключается в следующем:

[NSMutableString stringWithString:@"Debug"]; 

 Смежные вопросы

  • Нет связанных вопросов^_^