2011-08-14 75 views
1

我正在应用程序中执行应用程序内购买。 为了得到本地化的价格,我做到以下几点:在格式化价格时获取NSNumberFormatter来拼出货币

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; 

这工作得很好。不过,我想获得一个可转换为ASCII字符串的字符串。那么有没有办法让数字格式化程序拼出货币。例如“0.99欧元”将变为“0.99欧元”或“0.99欧元”。

回答

0

有一个办法做到这一点通过格式化的格式替换¤

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; 
[numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4]; 
[numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle]; 
[numberFormatter setLocale:self.priceLocale]; 
NSString *currencyString = [numberFormatter internationalCurrencySymbol]; 
NSString *posFormat = [numberFormatter positiveFormat]; 
formatterFormat = [formatterFormat stringByReplacingOccurrencesOfString:@"¤" withString:currencyString]; 
[numberFormatter setPositiveFormat:posFormat]; 
NSString *formattedString = [numberFormatter stringFromNumber:self.price]; 
[numberFormatter release]; 
return formattedString;