2017-02-09 2 views
0

私はSwift 3でキャッシュされたNSNumberFormatter(NumberFormatter)を作成する方法を知りたいですか?Swift 3でキャッシュされたNSNumberFormatterを作成するには?

これは私がGistsを検索して見つけたものです。

extension NumberFormatter { 
    private static var cache:[String:NumberFormatter] = [:] 

    static func numberFormatterForKey(key:String, initialize:((NumberFormatter)->())? = nil) -> NumberFormatter { 
     if let formatter = NumberFormatter.cache[key] { 
      return formatter 
     } else { 
      let formatter = NumberFormatter() 
      NumberFormatter.cache[key] = formatter 
      initialize?(formatter) 
      return formatter 
     } 
    } 
} 

しかし、私はそれを使用する方法がわかりません。またはより良い解決策がある場合。

したがって、Swift 3にキャッシュされたNSNumberFormatterを作成する方法は?

答えて

0

私はそれ以降問題を解決しました。

私はこのようにキャッシュされたnsnumberformatterを作成します。

struct ObjectCache { 
    static let currencyRateFormatter: NumberFormatter = { 
     var numberFormatter = NumberFormatter() 
     numberFormatter.locale = Locale(identifier: "en_US") 
     numberFormatter.numberStyle = .currency 
     numberFormatter.minimumFractionDigits = 0 
     numberFormatter.maximumFractionDigits = 0 
     numberFormatter.alwaysShowsDecimalSeparator = false 
     return numberFormatter 
    }() 
} 

次に、このように使用します。

self.myCashLbl.text = ObjectCache.currencyRateFormatter.string(from: NSNumber(integerLiteral: player.cash)) 

ありがとうございました。

関連する問題