使用SKProductDiscount的NumberFormatter(_unconditionallyBridgeFromObjectiveC)发生崩溃。

问题描述 投票:0回答:1

使用这个代码,是由苹果官方交给他们的文档:

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,这是堆栈跟踪。

enter image description here

令我惊讶的是,这段代码中的所有内容都是StoreKit的。我试着换了不同的语言环境,但我找不到如何让这种崩溃发生。

顺便说一下,它发生在一个有免费入门的产品上。所以格式化的输出字符串是"[€,$,等]0.00"。

这到底是什么?static Locale._unconditionallyBridgeFromObjectiveC(_:) 导致崩溃?

ios swift locale storekit
1个回答
0
投票

这是苹果的一个bug,在iOS 12中已经修复。iOS 11的唯一选择就是不依赖这个动态本地化,而是依赖一些自制的逻辑......。

© www.soinside.com 2019 - 2024. All rights reserved.