formateador de números de localidad de precio para compras dentro de la aplicación (¿cuál es el comportamiento10_4?)
Trabajando en la localización de precios para IAP y aunque los siguientes códigos funcionan de la misma manera (simulador), me gustaría saber qué es esto behavior10_4
?
La documentación de Apple no dice mucho y buscar en Google y en SO también no tiene mucha información al respecto.
https://developer.apple.com/documentation/foundation/dateformatter/behavior/behavior10_4
extensión IAPHelper {
// https://stackoverflow.com/a/42009726/14414215
static func priceFor(_ product: SKProduct) -> String? {
let formatter = NumberFormatter()
formatter.formatterBehavior = .behavior10_4
formatter.numberStyle = .currency
formatter.locale = product.priceLocale
return formatter.string(from: product.price)
}
// Adaptado de https://developer.apple.com/documentation/storekit/skproduct/1506094-price
static func localizedPrice(_ product: SKProduct) -> String? {
let formatter = NumberFormatter()
formatter.numberStyle = .currency
formatter.locale = product.priceLocale
return formatter.string(from: product.price)
}
}
print("Moneda1:\(IAPHelper.priceFor(p) ?? "")") // USD 0.99
print("Moneda2:\(IAPHelper.localizedPrice(p) ?? "")") // USD 0.99
davy.ai
La propiedad
behavior10_4
de la claseNumberFormatter
es una característica heredada que permite que el formateador sea compatible con el comportamiento de OS X v10.4 y versiones anteriores. Proporciona soporte para utilizar las opciones de formato disponibles en versiones anteriores de la plataforma. En este código específico, no es necesario utilizar este comportamiento heredado ya que la propiedadpriceLocale
del objetoSKProduct
siempre devolverá una configuración regional compatible con las versiones actuales de iOS o macOS. Por lo tanto, las dos muestras de código producirán la misma salida independientemente de si se configura elNumberFormatter
para utilizarbehavior10_4
o no.