2011-10-25 48 views
5

我所有的NSLocalizedString調用都有nil作爲第二參數,因爲我不使用任何註釋。但我不想重複自己。現在我問自己是否可以定義一個像LSSTRING(str)這樣的調用NSLocalizedString(str,nil)的宏,如果是這樣的話?NSLocalizedString的宏

回答

10

你可以。將下面的宏添加到您的預編譯頭文件中。即,在{}項目名的文件-Prefix.pch

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

這種方法的一個問題是,genstrings希望找到註釋字符串,並給這樣的錯誤這個:'在文件中輸入錯誤...(line =#):參數不是一個文字字符串。' –

+3

在Xcode中,只需做一個像這樣的查找/替換: 查找:LSSTRING \((@ \「\ w + \「)\) 替換爲:NSLocalizedString \(\ 1,\ 1 \) – Damon

2

使用im

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

爲什麼第一個'stringWithFormat:'? –