Я обновил свой проект до iOS 13 и понял, что средство форматирования цен, которое я использовал для форматирования цен, перестало работать правильно.
groupingSeparator
, символ, который группирует тысячи, отсутствует для четырехзначных чисел: от 1000 до 9999 при использовании испанской локали es_ES
.
Ниже приведен простой отрывок для проверки. NumberFormatter
, кажется, прекрасно работает для en_US
языкового стандарта и для чисел, превышающих 9999, но всякий раз, когда используется es_ES
языковой стандарт и пытаются отформатировать четырехзначное число, groupingSeparator
(разделитель тысяч) отсутствует, поэтому вместо получения1.000, я получаю 1000.
let enFormatter = NumberFormatter()
enFormatter.locale = Locale(identifier: "en_US")
enFormatter.numberStyle = .decimal
enFormatter.string(from: 1000)
enFormatter.string(from: 9999)
enFormatter.string(from: 10000)
enFormatter.string(from: 100000)
let esFormatter = NumberFormatter()
esFormatter.locale = Locale(identifier: "es_ES")
esFormatter.numberStyle = .decimal
esFormatter.string(from: 1000)
esFormatter.string(from: 9999)
esFormatter.string(from: 10000)
esFormatter.string(from: 100000)
Просто вставьте его на игровую площадку и проверьте выходы.
![Different outputs for en_US and es_ES NumberFormatter](https://i.stack.imgur.com/iQVlu.png)
утраЯ что-то пропустил?
До сих пор я сообщал о проблеме в Apple: FB7416623
https://feedbackassistant.apple.com/feedback/7416623 (не уверен, что ссылка работает)
Я буду держать это в курсе, но я был бы признателен, если бы кто-нибудь имел больше информации об этом.