ios - 带有参数的本地化字符串出现 EXC_BAD_ACCESS 崩溃

标签 ios swift

在这里遇到一个只出现在某些手机上的奇怪问题。我有一个自定义的 UIView,我是这样初始化的。

let passQuizToTutorAlert = SAAlertView(title: NSLocalizedString("quiz-title", comment: ""), message: String(format: NSLocalizedString("quiz-message-parameter", comment: ""), 4), textAlignment: .left, customView: headerImageView, alternativeLayout: true)

上面的行因此错误而崩溃:Thread 1: EXC_BAD_ACCESS (code = 1, address = 0x4)

我尝试了 init 中的各种方法。似乎只有当我使用带有参数的本地化字符串时它才会崩溃。例如这里的代码没有问题:

let passQuizToTutorAlert = SAAlertView(title: NSLocalizedString("quiz-title", comment: ""), message: NSLocalizedString("quiz-message", comment: ""), textAlignment: .left, customView: headerImageView, alternativeLayout: true)

它崩溃的本地化字符串定义如下:

"quiz-message-parameter" = "You have %d credits left";

我在这里做错了什么?为什么它只对带有参数的本地化字符串崩溃?

编辑:

我做了一点调试。此崩溃与警报 View 无关。如果我尝试:

let aString = String(format: "You have %d credits left", 4)
        print(astring)

它不会崩溃。但是当它与本地化字符串混合时它会崩溃:

let aString = String(format: NSLocalizedString("quiz-message-parameter", comment: ""), 3)

最佳答案

变量占位符错误的格式会导致 EXC_BAD_ACCESS

NSLocalizedString() 的情况下,您可能想要检查它的所有版本以了解所有可用语言。

前不久在我的一个项目中发生,除了一个版本,占位符是%d,一个是%@,导致仅当手机输入罪魁祸首语言时才会崩溃。

关于ios - 带有参数的本地化字符串出现 EXC_BAD_ACCESS 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42362669/

相关文章:

objective-c - 是否可以从 View Controller 请求 APNS 设备 token ?

ios - SwiftUI 中 ScrollView 下的按钮

ios - 在 tableViewCell 上显示来自子节点的所有数据

ios - 使用 Swift 的 SKVideoNode 中的垂直视频方向问题

ios - Swift 协议(protocol)委托(delegate)未被解雇

ios - 在结构中获取与另一个关联的值的快捷方式

ios - 谷歌地图路线 API

xcode - 错误 'Unsupported Configuration' 是什么意思?

swift - 错误 : Can't capture before it is declared . .. iOS 快速

ios - 为搜索栏设置取消按钮文本颜色(Swift)