从本地化文件iOS读取值

时间:2016-10-10 07:31:19

标签: ios iphone localizable.strings

我创建了一个本地化的字符串文件,其中包含键/值对中的错误消息。我只想在关键的基础上读取值,就像Plist一样。

以下是我的本地化文件的内容

"SERVICE_ERROR" = "Some error occurred while processing your request, Please try later";

这就是我在用户首选项中保存此字符串的方式

[ErrorManager setLastErrorInPreferences:NSLocalizedString(@"SERVICE_ERROR", nil)];

这是setLastErrorInPreferences方法

+ (void)setLastErrorInPreferences:(id)errorString {
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    NSDate *now = [NSDate date];
    NSString *errorStringWithTime = [NSString stringWithFormat:@"On %@:\n%@", now, errorString];
    [prefs setObject:errorStringWithTime forKey:KlastError];
}  

但它不起作用。它只是保存了关键。它没有反映出这个密钥在用户偏好中的价值。请告诉我我所缺少的内容。

1 个答案:

答案 0 :(得分:0)

我假设你有一个 Localizable.strings 文件。没有其他名称可以使用。

更改可本地化文件的内容
"SERVICE_ERROR" = "Some error occurred while processing your request, Please try later";

SERVICE_ERROR = "Some error occurred while processing your request, Please try later";

(从您的密钥SERVICE_ERROR中删除“”并在末尾加上一个分号;

同时显示setLastErrorInPreferences正在做什么?

用法

NSString* error = NSLocalizedString(@"SERVICE_ERROR", nil);   
NSLog(@"%@",error);

工作正常。

我的档案

enter image description here

修改

获取errorValue。在ErrorManager类中创建一些方法,然后从那里获取它,因为kLastError在Controller类中不可用。

NSString* yourError = [[NSUserDefaults standardUserDefaults] stringForKey:KlastError];