0

일부 통화 서식을 사용하여 통화 기호/스타일을 사용자의 로컬 설정으로 설정하고 있습니다. 여기 내 코드가있다. 나는 그것이 잘 동작한다고 생각한다. 내 viewDidLoad에 있습니다.여러 가지 방법으로 동일한 통화 서식 사용

let currencyFormat = NumberFormatter()  
currencyFormat.locale = NSLocale.current 
currencyFormat.usesGroupingSeparator = true 
currencyFormat.numberStyle = NumberFormatter.Style.currency 
... 
labelTotalAmount.text = currencyFormat.string(for: totalAmount) 

문제는 두 가지 다른 방법으로 동일한 형식을 사용하고 싶습니다. 형식화를 원할 때마다 각 메서드에 대해 서식을 반복하는 것은 낭비 인 것처럼 보입니다.

서식을 한 번 설정하고 클래스의 모든 메서드에서 설정을 기억하는 방법이 있습니까?

스위프트 3을 사용하고 있습니다. 도움을 주시면 감사하겠습니다 !!

class Whatever { 
    let currencyFormat: NumberFormatter = { 
     let res = NumberFormatter() 
     res.numberStyle = .currency 
     res.usesGroupingSeparator = true 
     return res 
    }() 
} 

지금 당신이 어떤 방법으로 그 속성을 사용할 수 있습니다 :

+0

클래스 또는 전역 값 또는 싱글 톤을 사용하십시오. – JAL

+0

http://stackoverflow.com/questions/24960621/struggling-with-nsnumberformatter-in-swift-for-currency/42957137#42957137 –

+0

FYI - 로케일을 기본값으로 사용하기 때문에 현재 로캘을 설정할 필요가 없습니다. – rmaddy

답변

1

는 클래스의 계산 된 재산합니다.

func someMethod() { 
    let str = currencyFormat.string(for: 5.99) 
} 
+0

이것이 왜 저에게 효과가 있는지 모르겠습니다. 아마도 'Whatever'클래스를 잘못된 위치에 배치 할 것입니까? 내 수업 밖에 모두 ViewController 위치 : UIViewController 및 내부. – Jupiter869

+0

그것은 당신의 수업이 무엇이든 의미가 있습니다. 새 클래스를 만들지 마십시오. 'currencyFormat'을 View Controller 클래스의 프로퍼티 (또는이 프로퍼티가 필요한 클래스)로 만드십시오. – rmaddy

+0

어리석은 실수를 고쳐 주셔서 감사합니다! 이제는 훌륭하게 작동합니다! 감사!!! – Jupiter869