Я хотел бы иметь поле ввода валюты в своем приложении, где пользователь может либо включать символ валюты (в зависимости от их локали), либо не по желанию.iOS Поле ввода валюты
У меня есть текстовое поле, и я сохраняю значение в NSDecimalNumber (который я понимаю, это рекомендуемый способ хранения валюты).
Следующий код будет получить меня от NSDecimalNumber на отформатированную строку валюты:
[NSNumberFormatter localizedStringFromNumber:currencyValue numberStyle:NSNumberFormatterCurrencyStyle]
Но я не могу найти способ сделать реверс этого. то есть взять строку, которую пользователь набрал в текстовое поле, и преобразовать ее (если возможно) в NSDecimalNumber. Имея в виду, что символ валюты может быть там (потому что он исходил из функции выше) или нет (потому что пользователь не стал набирать символ валюты).
Что мне не хватает?
Если я не могу понять это, я просто не буду принимать символ валюты вообще (например, просто проанализируйте его, используя код ниже). Но, кажется, лучше разрешить символ валюты.
[NSDecimalNumber decimalNumberWithString:currencyString locale:[NSLocale currentLocale]]
У меня такое чувство, что у меня что-то не хватает. Каков правильный способ конвертировать назад и вперед между локализованной строкой валюты и NSDecimalNumber?