【问题标题】:Fatal Error with NSLocalizedString due to one system language由于一种系统语言,NSLocalizedString 出现致命错误
【发布时间】:2019-02-05 22:04:39
【问题描述】:

我最近开始在我的应用程序中使用本地化字符串,今天我发现了这个奇怪的问题。目前,我的应用程序支持两种语言:英语(项目的语言)和意大利语(我的母语)。今天,我尝试将语言更改为英语,但我的应用程序崩溃并出现此错误“Fatal Error Unexpectedly found nil while unwrapping an Optional value”;现在,我知道这是一个与可选相关的错误,但我不明白在这种情况下它是什么意思。下面是 viewDidLoad 方法的代码:

photosLabel.text = NSLocalizedString("photosLabelText", comment: "The text of the label under the photo's counter")

这里有来自 Localizable.strings 的行(英文)

"photosLabelText" = "Photos";

附:在我的项目中环顾四周,我发现在“本地化”语音下的故事板中,英语和意大利语的语音是不同的;这是截图

【问题讨论】:

  • 你确定photosLabel 不为零吗?您在什么情况下尝试设置 text 属性?
  • 是的...我正在尝试在 viewDidLoad 方法中设置它...但是奇怪的是,如果语言是意大利语,它可以完美运行。
  • 您没有本地化的故事板(或 xib)吗?您可能错过了其中一些连接 IBOutlet。
  • 设置photosLabel.text 是您使用NSLocalizedString 的唯一行吗?你确定是这个错误吗?
  • @OOPer 你是什么意思?

标签: swift xcode fatal-error nslocalizedstring


【解决方案1】:

如果 photosLabel 是一个 IBOutlet,请确保从 (English) 故事板链接到它,而不是 (Base)

注意:把你的文件名Localizable.string改成Localizable.strings,只是打错了。

【讨论】:

  • 对不起,我的错...我打错字了,是的,但在这个问题中,不在我的项目中
  • 顺便说一句,我还有一个问题。 Base 主 Storyboard 和英文版有什么区别?
  • 很高兴我能帮上忙
  • @LorenzoSantini Base 是应用程序默认使用的语言,其他语言可能由用户在设置中选择。 This 是文档中定义基本内化的方式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-01
  • 2016-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多