NSLocalizedString 정보(@ "Foo%@",nil)

1231 단어 String
NSLocalizedString (@ "Foo% @",nil) 이 말은 실제적으로 다국어 파일에서 키가 "Foo% @"인 문자를 찾는 것입니다. 절대로 이것을 [NSString string WithFormat: @ "% @"@ "he"] 와 바꾸지 마십시오.헷갈렸어.특히 Appirater라는 소스 오픈 도구에서 발생하는 특수한 상황이 있다.다음 코드에 대해
#define APPIRATER_APP_NAME @ "App"

#define APPIRATER_LOCALIZED_MESSAGE_TITLE   NSLocalizedString(@"Rate %@", nil)

#define APPIRATER_MESSAGE_TITLE             [NSString stringWithFormat:APPIRATER_LOCALIZED_MESSAGE_TITLE, APPIRATER_APP_NAME]

언뜻 보기에는 다국어 파일에서 키가'Rate App'인 코드를 찾는 것이 최종 결과인 줄 알았는데 실제로는 아니었다.최종 APPIRATERMESSAGE_TITLE의 결과는 다음과 같습니다: 먼저 다국어 파일에서 키가 "Rate% @"인 텍스트를 찾고, 찾으면 이 텍스트를 되돌려줍니다.stringWithFormat에 있는 APPIRATER를 무시합니다APP_NAME, 찾을 수 없으면 "Rate App"으로 돌아가십시오!이상하지 않아요...이 용법은 정말 너무 강하고 신기하다.
NSString *string = APPIRATER_MESSAGE_TITLE; 

다중 언어 문자에서 키가 "Rate%@"인 문자를 찾을 수 있으면string은 이 문자를 그대로 반환합니다. 즉, NSLocalizedString(@"Rate%@", nil)을 찾을 수 없으면 [NSString stringWithFormat:@"Rate%@", APPIRATER APP NAME]를 반환합니다.

좋은 웹페이지 즐겨찾기