【发布时间】:2012-01-14 03:38:12
【问题描述】:
我遇到了一些我不明白的事情。我在手机的设置菜单中为应用程序设置了语言选择。我有委托方法
- (void)defaultsChanged:(NSNotification *)notif
在我的 AppDelegate 中。我阅读了所选语言的新参数并尝试更改语言
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"en", nil] forKey:@"AppleLanguages"];
不幸的是,这条线总是给我一个 EXC_BAD_ACCESS 错误。我不明白为什么。
我尝试了 StackOverflow 上给出的不同方法来在运行时更改本地化,但它们仅适用于应用程序中的文本。我也有本地化的图像,它们仅在 NSUserDefaults 中更改语言时更新。
我需要一些建议。
谢谢!
【问题讨论】:
-
你能添加你的堆栈跟踪/控制台日志吗?
-
你启用zombies
-
@deanWombourne 实际上控制台上什么都没有,也没有堆栈跟踪
-
@rckoenes 我不知道什么是僵尸(除了......好吧......电视),我不知道如何启用它们。
-
我想我知道发生了什么。 (void)defaultsChanged:(NSNotification *)notif 的 NSNotification* 是 NSUserDefaultsDidChangeNotification。调用 [[NSUserDefaults standardUserDefaults] setObject:obj forKey:key] 然后会触发 defaultsChanged... 然后我们有一个循环和一个...好吧... stackoverflow :) 你们觉得呢?
标签: iphone localization nsuserdefaults exc-bad-access