【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
同理接下来的是一样的

浙公网安备 33010602011771号