Мы общаемся с сервером, который отправляет обратно номера в формате: "$229,000"
.iOS 10 NumberFormatter возвращает NIL, но работает на iOS9, iOS8, iOS7
Мы используем NSNumberFormatter
, чтобы преобразовать это в ряд, как:
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[formatter setCurrencyCode:@"US"];
[formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
[formatter setCurrencySymbol:@""];
В любой версии IOS НИЖЕ IOS-10GM, символ валюты должен быть пустой строкой или ноль в противном случае форматировщик терпит неудачу и возвращает NIL.
Однако на iOS-10 вышеуказанный код не сработает, если мы не добавим символ валюты как "$"
.
Есть ли другие решения, кроме проверки версии iOS (через NSFoundationVersionNumber
)?
Не забудьте добавить [formatter setLenient: YES]; если в вашей строке есть пробелы. – Reaper