zoukankan      html  css  js  c++  java
  • 关于NSLocalizedString(@"Foo %@",nil)

    NSLocalizedString(@"Foo %@",nil) 这句话实际上是在多语言文件中寻找一个key为“Foo %@”的文字,千万不要把这个和[NSString stringWithFormat:@"%@",@“hehe”];弄混了。
    特别的有一种很特殊的情况,发生在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]

    乍看上去,以为最终的结果是在多语言文件中找key为“Rate App”的代码,实际上并不是!
    最终APPIRATER_MESSAGE_TITLE的结果是:先在多语言文件中寻找key为“Rate %@”的文字,如果找到,则返回这个文字,忽略stringWithFormat里面那个APPIRATER_APP_NAME,如果找不到,再返回“Rate App”!
    是不是很诡异啊。。。这个用法实在是太强悍太神奇了:)
    再具体一点:
    比如我做

    NSString *string = APPIRATER_MESSAGE_TITLE; 

    如果能在多语言文字里面找到key为“Rate %@”的文字,string就直接返回这个文字,即返回NSLocalizedString(@"Rate %@", nil)
    如果找不到,则返回 [NSString stringWithFormat:@"Rate %@",APPIRATER_APP_NAME];

  • 相关阅读:
    django创建表单以及表单数据类型和属性
    Django-debug-toolbar(调试使用)
    POJ 2828 Buy Tickets
    Bsoj 1322 第K小数
    bzoj3555 企鹅QQ
    洛谷P1141 01迷宫
    NOIP2008普及组题解
    NOIP2014 day2 T2 洛谷P2296 寻找道路
    POJ2892 Tunnel Warfare
    BZOJ 3224 TYVJ 1728 普通平衡树 [Treap树模板]
  • 原文地址:https://www.cnblogs.com/flyFreeZn/p/3427244.html
Copyright © 2011-2022 走看看