local copy of formatter properties


(Will Stanton) #1

Greetings,

I was wondering if there is a reason for keeping local copies of formatter attributes in NSDateFormatter and NSNumberFormatter. Why not create the CF formatter on initialization and pass attributes live?

For instance, instead of this (from line 509 of NSNumberFormatter.swift):
   internal var _minusSign: String!
   public var minusSign: String! {
       get {
           return _minusSign
       }
       set {
           _reset()
           _minusSign = newValue
       }
   }

this:
   public var minusSign: String! {
       get {
           return CFNumberFormatterCopyProperty(_cfFormatter, kCFNumberFormatterMinusSign) as! String
       }
       set {
           return CFNumberFormatterSetProperty(_cfFormatter, kCFNumberFormatterMinusSign, newValue as! AnyObject)
       }
   }

I feel like the existing code is a bit messy with the _reset() and _setFormatterAttribute() action, with the reset’s affecting performance if a property changed between string creation.

Regards,
Will Stanton