【发布时间】:2012-02-19 18:52:37
【问题描述】:
我似乎在绕着这个问题兜圈子,但我现在无处可去。
我正在尝试强制我的应用程序的语言(瑞典语)如下所示。
@autoreleasepool {
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"sv", nil] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults]synchronize];
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
我已经在 main 方法中完成了,所以在启动应用程序时就设置了首选项。
然后,当我想按字母顺序对数组进行排序时,我使用 NSSortDescriptor 和选择器 localizedCaseInsensitiveCompare:。
NSSortDescriptor *valueDescriptor = [[NSSortDescriptor alloc] initWithKey:@"iName" 升序:YES 选择器:@selector(localizedCaseInsensitiveCompare:)];
NSArray * 描述符 = [NSArray arrayWithObject:valueDescriptor];
self.ingredientsList = [NSMutableArray arrayWithArray:[self.ingredientsList sortedArrayUsingDescriptors:descriptors]];
但我的问题是我的本地语言排序不是第一次发生。但是如果我重新启动应用程序,排序是根据语言(瑞典语)。为什么第一次没有发生?
我做错了什么?
我们将不胜感激帮助/建议。 谢谢
【问题讨论】:
-
你不应该一开始就搞乱语言设置!
-
我希望瑞典语列表按字母顺序排序。 (无论用户的电话语言如何,都以瑞典语而不是英语按字母顺序排列)。那么这样做的正确方法是什么?
-
@DarkDust 那么强制应用程序语言是错误的吗?
标签: iphone objective-c nsuserdefaults nssortdescriptor nslocale