Mat*_* GA 7 string iphone localization objective-c
我正在开发一个iphone应用程序,我想知道抽象字符串的正确做法是什么.我习惯于创建一个包含常量字符串的文件,并在我的应用程序中引用它们(例如url,端口号甚至按钮标签).我想知道这是否被认为是Obj-C的良好做法,如果是这样,最好的办法是什么?我应该用字符串创建一个类吗?或者使用".strings"文件?
ps我可能会在以后本地化我的应用程序.我还没有调查过如何做到这一点,但我想在我开发的时候抽出我的弦是一个好主意.
谢谢!MGA
一般来说,你接口NSBundle.您使用字符串来读取字符串的本地化版本(从本地化的字符串文件加载).
还有一些人用来减轻语法的宏,这些都是前缀的NSLocalizedString.NSLocalizedString实现使用NSBundle.
imo,你应该使用字符串常量来识别你读取的本地化字符串(就像你应该使用字典和对象键).
您可以使用此表单声明常量(假定objc):
extern NSString* const MONAppString_Download;
Run Code Online (Sandbox Code Playgroud)
并定义如下:
NSString* const MONAppString_Download = @"Download";
Run Code Online (Sandbox Code Playgroud)
然后使用:访问它:
NSString * tableName = nil; // << using the default
NSString * localized =
[[NSBundle mainBundle]
localizedStringForKey:MONAppString_Download
value:MONAppString_Download // << return the string using the default localization if not found
table:tableName];
Run Code Online (Sandbox Code Playgroud)
有时它有助于创建包装函数以减少噪音,尤其是在许多地方使用它们时:
// @return what's set to the above variable named 'localized'.
NSString * MONLocalized_Download();
Run Code Online (Sandbox Code Playgroud)
然后你设置你的字符串文件,如地图,一个支持你的每个本地化.
因此,只要您需要读取用户可见的字符串,就可以使用上面的表单.还要考虑还有其他资源可以本地化(笔尖,图像,pdf等),您可以将它们与您的应用程序捆绑在一起.如果你愿意的话,这里的大部分工作也是由CFBundle的NSBundle提取的.
祝好运
| 归档时间: |
|
| 查看次数: |
368 次 |
| 最近记录: |