ios - 使用 SKProductDiscount 的 NumberFormatter (_unconditionallyBridgeFromObjectiveC) 崩溃
问题描述
使用 Apple 在其文档中正式提交的代码:
extension SKProductDiscount {
var localizedPrice: String {
let formatter = NumberFormatter()
formatter.numberStyle = .currency
formatter.locale = self.priceLocale // Line #15 - this is where it crashes
return formatter.string(from: self.price) ?? ""
}
}
我有用户崩溃,根据 Crashlytics,这是堆栈跟踪:
令我惊讶的是,这段代码中的所有内容都只是 StoreKit。我尝试更改为不同的语言环境,但我找不到如何使这种崩溃发生。
仅供参考,它发生在具有免费介绍性优惠的产品上。所以格式化的输出字符串是“[€,$,etc]0.00”。
这是什么static Locale._unconditionallyBridgeFromObjectiveC(_:)
导致崩溃?
解决方案
这是在 iOS 12 中修复的 Apple 错误。iOS 11 的唯一选择是不依赖这种动态本地化,而是依赖一些自制的逻辑......
推荐阅读
- python - 仅将数组中的项目保留在另一个不同大小的数组中-没有循环
- php - 如何在wordpress中用点/句点替换最后一个逗号?
- html - 导航栏使引导主容器黯然失色
- php - SQL按日期组按产品ID计数记录
- image - FFMpeg png 图像序列到无损 mp4
- postgresql - 无法连接到端口 5432 上的服务器(PostgreSQL - CentOS 7.4)
- c# - 使用公钥的 JWT 令牌验证
- android - Firebase Android:卸载应用程序后,经过身份验证的用户会发生什么?
- javascript - 如何将对象的嵌套属性添加到 FormData 对象?
- c - 为什么 \b 在字符串中间使用时会删除写在 \b 之前的一个字符,但在末尾使用时却没有?