2011-10-25 12 views
5

Todas mis llamadas de NSLocalizedString tienen nil como segundo parámetro, porque no uso ningún comentario. Pero odio repetirme. Ahora me pregunto si está bien definir una macro como LSSTRING (str) que llame a NSLocalizedString (str, nil) y, de ser así, ¿cómo?Macro para NSLocalizedString

Respuesta

10

Puedes. Agregue la siguiente macro a su encabezado precompilado. es decir., en el archivo -Prefix.pch {} Nombre del Proyecto

#define LSSTRING(str) NSLocalizedString(str, nil) 
+4

Un problema con este enfoque es que genstrings espera encontrar una cadena para el comentario, y dará un error como esto: 'Mala entrada en el archivo ... (línea = #): Argumento no es una cadena literal. –

+3

En Xcode, simplemente haga un buscar/reemplazar de esta manera: Find: LSSTRING \ ((@ \" \ w + \ ") \) Reemplazar: NSLocalizedString \ (\ 1, \ 1 \) – Damon

2

im usando

#define _(format, ...) [[NSBundle mainBundle] localizedStringForKey: [NSString stringWithFormat:@"%@", [NSString stringWithFormat:format, ##__VA_ARGS__]] value:@"" table:nil] 
+1

¿Por qué el primer' stringWithFormat: '? –