Я недавно обнаружил этот однострочный:
[@1234567 descriptionWithLocale:[NSLocale currentLocale]]; // 1,234,567
Или в Swift 2:
1234567.descriptionWithLocale(NSLocale.currentLocale()) // 1,234,567
Swift 3/4:
(1234567 as NSNumber).description(withLocale: Locale.current)
Отформатировано под вопрос:
[@(n) descriptionWithLocale:[NSLocale currentLocale]];
Отформатировано без литералов Objective-C:
[[NSNumber numberWithInt:n] descriptionWithLocale:[NSLocale currentLocale]];
Это решение, которое я искал, когда задавал вопрос. Доступный начиная с iOS 2.0 и OS X 10.0, документированный, чтобы возвратить строковую версию числа, отформатированного согласно предоставленной локали. stringValue
даже задокументировано использование этого метода, но с передачей nil
.
Видя, что это мой вопрос, и это лучше всего соответствует моему ответу, я испытываю желание сменить галочку, но это кажется жестоким. Обновление Я поменял галочку, этот ответ .