IT新闻:

【IOS学习之路】关于NSLocalizedString

1、首先要只要NSLocalizedString是什么

在xcode中选择NSLocalizedString然后jump你会看到下面的一行代码

#define NSLocalizedString(key, comment) \
	    [[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:nil]

很明显这是一个宏,质上是调用了函数 locakizedStrigForKey:.这样,这个宏做的其实就是在当前bundle中查找资源文件名Localizable.strings,然后在其中取值。中键值key所指向的字符串.这样就不难理解还有诸如:NSLocalizedStringFromTable的宏了。

Localizable.strings在newfile中可以新建选择String File

2、看列子说话

       下面是一段程序,看懂了就知道他完成了什么

for(NSString *pageName in pageNames)
    {
        [self.menuList addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:
                                  NSLocalizedString([pageName stringByAppendingString:@"Title"], @""), kTitleKey,
                                  NSLocalizedString([pageName stringByAppendingString:@"Explain"], @""),kDetailKey,nil]];
        
    }

我的Localizable.strings中存储了这样一些东西

 1 "PageOneTitle" = "View 1";
 2 "PageOneExplain" = "Custom Right View";
 3 
 4 
 5 "PageTwoTitle" = "View 2";
 6 "PageTwoExplain" = "Custom Right View with Image";
 7 
 8 "PageThreeTitle" = "View 3";
 9 "PageThreeExplain" = "Custom Right View with Segment";
10 
11 "PageFourTitle" = "View 4";
12 "PageFourExplain" = "Custom Title Bar";
13 
14 "PageFiveTitle" = "View 5";
15 "PageFiveExplain" = "Custom Title Bar with Prompt";
16 
17 "AddTitle" = "Add";
18 "StyleTitle" = "Style";
19 
20 "DefaultTitle" = "Default";
21 "BlackOpaqueTitle" = "Black-Op";
22 "BlackTranslucentTitle" = "Black-Trans";
23 "RedTitleTitle" = "Red";

 

很明显在for循环中向menList添加的是object:View 1 key:kTitleKey

                           object:Custom Right View key:kDetailKey

 

同理接下来的是一样的

 

posted @ 2012-07-31 12:17  胡藟壘  阅读(647)  评论(0)    收藏  举报