2013-01-13 92 views
0

我使用NSNumberFormatter和NSNumberFormatterCurrencyStyle在我的通用iOS應用程序中顯示應用程序購買價格。我的位置是印度,格式化程序在我測試的大多數設備(ipad模擬器,ipad 3設備,iphone 3gs設備,iphone 4設備)中正確顯示印度盧比符號。但是,只有在ipad第一代(運行iOS 5.1.1)時,它會顯示一個正方形而不是盧比符號。NSNumberFormatter只在ipad設備上不顯示盧比符號

所有設備都運行它們支持的最新ios(ipad 3,iphone 4和iphone 3gs上的iOS 6.0.1; iPad 1上的iOS 5.1.1)。

我們使用格式化貨幣的功能是:

@implementation SKProduct (LocalizedPrice) 

- (NSString *)localizedPrice 
{ 
    NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; 
    [numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4]; 
    [numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle]; 
    [numberFormatter setLocale:self.priceLocale]; 
    NSString *formattedString = [numberFormatter stringFromNumber:self.price]; 
    [numberFormatter release]; 
    return formattedString; 
} 

@end 

UPDATE1:這似乎只發生在iOS 5.1,而不是在iOS 6.0 - 我試圖在iOS 6和iOS 5.1的iPad模擬器運行 - 它適用於ios 6模擬器,但不適用於ios 5.1。有沒有辦法在ios 5.1上顯示貨幣符號?

Update2:現在,我檢查操作系統版本並僅在> = 6.0中顯示符號。這是其他一些應用程序似乎在做的。

感謝 阿南德

+2

嗯,我不認爲原來的iPad可以運行iOS 6 ... –

+0

顯示一些代碼。 – 2013-01-13 16:17:34

+0

謝謝@DaveDeLong - ipad 1有5.1.1。我已經在上面更新了它。 – Anand

回答

0

你看到了嗎?

enter image description here

這就是「通用貨幣符號」,這是當格式不具有特定的已知符號使用用途是什麼。

對於我來說,iOS 5.1上的NSNumberFormatter不會有Rupee符號,這似乎很奇怪,因爲這是一個相當標準的符號。但是,如果確實如此(並且我很抱歉,我沒有iOS 5.1設備在這裏檢查),您可以在格式化的字符串中查找並替換,以便用盧比​​替換通用貨幣符號符號。

相關問題