es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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
Tags:  ,

Answer

  1. Avatar for davy.ai

    La propiedad behavior10_4 de la clase NumberFormatter 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 propiedad priceLocale del objeto SKProduct 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 el NumberFormatter para utilizar behavior10_4 o no.

Comments are closed.