- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试使用以下代码获取用户选择的当前首选语言:
NSString *language = [[NSLocale preferredLanguages] objectAtIndex:0];
这是第一次运行应用程序时给我的首选语言,但是一旦我在系统设置中更改语言,更改就不会反射(reflect)出来。如果我卸载应用程序,那么更改语言然后重新安装应用程序,应用程序现在可以使用这种新语言(并且只显示这种语言)
这是正在发生的事情:
- The language is set to English (Australian) when the app is first installed.
- The app will show
*language
gives the valueen-AU
(correct value).- Now the language is now changed to Serbian.
- After restarting the app
*language
is still givingen-AU
whereas it should havesr-XX
.- After re-installing the app, the
language
is showing the correct valuesr-XX
and the app is working as expected but now it won't change to any other language (as described)
我直接在 iPhone (iOS 11) 上测试该应用。我在项目设置中添加了本地化资源,只是为了确保我还在方案中将默认应用程序语言设置为首选系统。
我也尝试使用 currentLocale
但它仍然给出相同的结果。
我还在某处找到了以下代码,这也是给数组 2 个元素,但其行为与 preferredLanguage
相同,并且不会随着语言的变化而变化。
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSMutableArray *languages = [[NSMutableArray alloc] initWithArray:[userDefaults objectForKey:@"AppleLanguages"]];
我是 iOS 开发人员的新手,不确定我哪里做错了。请帮忙。
最佳答案
如果您想要“始终反射(reflect)最新配置设置”的区域设置,请使用 autoupdatingCurrent
在 Swift 中,autoupdatingCurrentLocale
在 Objective-C 中。
您可能还想将自己确立为 NSLocale.currentLocaleDidChangeNotification
的观察者在 Swift 中,NSCurrentLocaleDidChangeNotification
在 Objective-C 中,如果您希望在区域设置更改时应用程序恰好挂起或在后台运行时收到任何更改通知(例如,为了相应地更新 UI)。
关于ios - NSLocale NSLocale preferredLanguages 不更新语言更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48004191/
我正在尝试使用以下代码获取用户选择的当前首选语言: NSString *language = [[NSLocale preferredLanguages] objectAtIndex:0]; 这是第一
我似乎一直在围绕这个问题兜圈子,但现在却无路可走。 我正在尝试强制我的应用程序的语言(瑞典语),如下所示。 @autoreleasepool { [[NSUserDefaults standa
我想在应用程序中添加两个按钮并执行一些操作。我想在 XIB 中切换两种语言按钮。假设有Button,1是英文,2是法文。我在应用程序中添加了一些数据。如果我选择英语按钮,则数据将以英语显示,而法语按钮
以下代码提供了一个包含所有语言的数组, 我还是希望过滤掉诸如“en-GB”,“zh-Hant”之类的变体,并且每个语言只有一个2个字符的数组。 苹果这样做的优雅方式是什么? NSLog(@"[NSL
我有一根绳子,根据某些情况,中间有不同的部分。 示例:您失去了 255 积分。 点值“255”是变化的部分,我想将不变的部分保存在我的字符串文件中。但是我不想在我的字符串文件中有两个条目,例如。 "s
[NSLocale currentLocale]可能会返回 'en_US@calendar=japanese'} 问题:我可以说 NSLocale 不附加 calendar=japanese到语言环境
我正在尝试使用以下代码获取设备当前选择的语言代码。 NSString *language = [[NSLocale preferredLanguages] objectAtIndex:0]; 此行在安
我希望少数 iTunes 商店使用我的应用程序。我读了NSLocale Class Reference他们正在谈论“当前用户”。那么,谁是“当前用户”?是下载过app的用户吗? 1) 是否有可能根据当
我正在使用闹钟应用程序。我正在使用 NSLocal 通知创建警报。警报工作正常。我的问题是我需要不间断地重复循环 Alatm。 我的代码: UILocalNotification *localNot
我正在使用 Swift 3 开发 iOS。 我得到了国家名称字符串,如“日本”、“英国”、“西类牙”等。 我想知道从国家名称生成 NSLocale 实例的最佳方法是什么? 我只找到了localized
我已经找到了很多方法来解决这个问题,但没有有效的解决方案。这是我尝试过但没有奏效的方法。 (1) 只需调用primaryLanguage() UITextInputMode().primaryLang
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
所以在我的应用程序中,我试图获取设备当前设置的语言及其首字母缩写词。所以我这样做: NSString *fullLanguage = [[NSLocale currentLocale] display
我使用以下代码作为代码和国家/地区名称,但它返回 null。 NSLocale *locale = [NSLocale currentLocale]; NSString *countryCode =
有没有办法像在设置应用程序中一样在 iphone 上获取所有可用语言? 在 NSLocales 类引用中找不到方法。 谢谢! alt text http://dl.getdropbox.com/u/8
我使用此代码获取 iPhone 属于哪个国家/地区: NSLocale *locale = [NSLocale currentLocale]; NSString *countryCode = [loc
我想获取当前选择的 iPhone 语言。如果使用“NSLocale”,它总是返回相同的语言。看来这不是您在 iPhone 设置中选择的。 NSLocale * locale = [NSLocale c
有没有更好的方法来编码而不使用魔术“en”,“es”字符串? let pre = Locale.preferredLanguages[0] if pre == "en" .... el
我试图让 Xcode 返回各种格式的 iOS 语言名称列表。在下面的代码中,我创建了一个字典,返回可以从 NSLocale 返回的各种字符串。 langInUsersLang - 返回用户语言的语言名
我想获得一份国家列表,其中包含相应的语言和货币。 首先我创建了我的类来存储我需要的信息: class Country: NSObject { var localeID:String?
我是一名优秀的程序员,十分优秀!