2016-07-27 39 views
1

我使用NSNumberFormatter來格式化語音的價格。我發現,如果沒有使用千位分隔符,並且對於某些貨幣列表(例如US $,€,£),它可以正常工作,但它似乎不適用於任何其他貨幣。 CA $發音爲C-A-Dollar ...什麼是正確的方式來配置NSNumberFormatter以獲得適合語音輸出的體面輸出?價格的格式輔助功能標籤

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 
formatter.numberStyle = NSNumberFormatterCurrencyStyle; 
formatter.usesGroupingSeparator = NO; 
formatter.currencyCode = @"NOK"; 

view.accessibilityLabel = [formatter stringFromNumber:@100]; 

如卡爾如下所述,.CurrencyPluralStyle可以使用。它基於區域設置格式化貨幣,並忽略所有其他設置,即使是usesGroupingSeparator。隨着一些手工工作,它可以是一個合適的選擇!下面

例子:

let formatter = NumberFormatter() 
formatter.numberStyle = .currencyPlural 
formatter.usesGroupingSeparator = false // being entirely ignored :/ 
formatter.locale = Locale(identifier: "en_CA") 

let str = formatter.string(from: 1000.50)! 

print("\(str)") 

產地:

1,000.50加元

+0

你希望它說加拿大元而不是C-A $? –

+0

@TejaNandamuri是 – Andy

+0

如果您將貨幣代碼設置爲CAD,則僅顯示$ 100,但不顯示爲CA $ 100。你是如何獲得CA部分的? –

回答

2

是否NSNumberFormatterCurrencyPluralStyle滿足您的需求?不過,這只是iOS9和更高版本。

+0

這不提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 - [來自評論](/ review/low-quality-posts/13973938) –

+0

@BeauNouvelle,但它讓我找到了正確的解決方案。 – Andy

+0

我用例子更新了我的答案。 – Andy