如何使用Cocoa或Cocoa Touch框架在Objective-C中的貨幣之間進行轉換?Objective-C中的貨幣轉換
回答
嘛,你不是一個幸運兒:
https://github.com/davedelong/DDUnitConverter
只需將整個 「DDUnitConverter」 子文件夾複製到您的項目,然後執行:
#import "DDUnitConverter.h"
#import "DDCurrencyUnitConverter.h"
- (void) convertCurrency {
DDUnitConverter *converter = [DDUnitConverter currencyUnitConverter];
NSNumber *from = [NSNumber numberWithInt:42];
NSNumber *to = [converter convertNumber:from fromUnit:DDCurrencyUnitUKPoundSterling toUnit:DDCurrencyUnitUSDollar];
NSLog(@"new value: %@", to);
}
,將轉換£42到美元。
價格從IMF自動拉,但如果你真的需要,您可以在單位轉換器實例調用-refreshExchangeRates
。
-convertNumber:fromUnit:toUnit:
呼叫將阻塞,直到費率可以下載和解析。隨後的通話將只使用已經下載的匯率。
另一種方法是使用YQL(Yahoo查詢語言)來檢索最新的費率。 雅虎的開發網站使Objective-C開始非常容易,並且YQL上有很多SO例子。 http://developer.yahoo.com/social/sdk/objectivec/
您可能會發現雅虎非常好,很自由,他們的條款&許多數據API的條件。它比Dave使用的非專用API要脆弱得多。 Dave編寫了很棒的代碼,但IMF TSV文件幾乎沒有保證可用作YQL服務。
其實我已經選擇:
https://github.com/davedelong/DDUnitConverter
價格從IMF,但在轉換過程中拉,有使用NSDecimalNumber功能(decimalNumberByMultiplyingBy和decimalNumberByDividingBy問題:他們不,如果你不給正確的結果使用由字符串創建NSDecimalNumber VAR的),所以我對這樣的轉換方法,現在它的工作:
DDUnitConverter.m
- (NSNumber *)convertNumber:(NSNumber *)number fromUnit:(DDUnit)fromUnit toUnit:(DDUnit)toUnit {
if (fromUnit == toUnit) { return number; }
//make sure it's an NSDecimalNumber
NSDecimalNumber *source = [NSDecimalNumber decimalNumberWithDecimal:[number decimalValue]];
NSDecimalNumber *convertToBaseUnit = [[self class] multiplierForUnit:fromUnit];
NSDecimalNumber * n1 = [NSDecimalNumber decimalNumberWithString:[source stringValue]];
NSDecimalNumber * n2 = [NSDecimalNumber decimalNumberWithString:[convertToBaseUnit stringValue]];
NSDecimalNumber *valueInBaseUnit = [n1 decimalNumberByMultiplyingBy:n2];
NSDecimalNumber *convertFromBaseUnit = [[self class] multiplierForUnit:toUnit];
if ([convertFromBaseUnit isEqual:[NSDecimalNumber zero]]) {
convertFromBaseUnit = [NSDecimalNumber one];
}
NSDecimalNumber * n3 = [NSDecimalNumber decimalNumberWithString:[valueInBaseUnit stringValue]];
NSDecimalNumber * n4 = [NSDecimalNumber decimalNumberWithString:[convertFromBaseUnit stringValue]];
NSDecimalNumber *valueInTargetUnit = [n3 decimalNumberByDividingBy:n4];
return valueInTargetUnit;
}
其工作很多... – sohil 2017-06-05 16:50:19
- 1. 轉換貨幣
- 2. Rails中的貨幣轉換
- 3. 貨幣轉換器
- 4. Django貨幣轉換
- 5. Javascript貨幣轉換
- 6. Angular2管轉換貨幣
- 7. angularjs貨幣轉換器
- 8. 轉換條紋貨幣
- 9. 谷歌貨幣轉換器
- 10. WebServicex貨幣轉換器API
- 11. Magento完成貨幣轉換
- 12. 貨幣轉換器問題
- 13. 貨幣轉換程序
- 14. 轉換貨幣價值
- 15. 轉換爲貨幣格式
- 16. 熊貓中的貨幣轉換
- 17. 在HTML中的貨幣價格轉換
- 18. 在前面轉換貨幣的貨幣,angularJS
- 19. 收集從geoplugin貨幣轉換器返回的貨幣 - PHP
- 20. 轉換成ISO 4217的數字貨幣代碼貨幣名稱
- 21. 將貨幣/貨幣轉換爲Cent,反之亦然
- 22. 在Swift中創建貨幣轉換器
- 23. 如何在python中轉換貨幣?
- 24. 用於貨幣轉換的PHP腳本
- 25. 使用angularjs的貨幣轉換器
- 26. 以雙向轉換貨幣的問題
- 27. 熊貓數據幀的貨幣轉換
- 28. 需要用於貨幣轉換的API
- 29. 貨幣轉換在Ruby on Rails的
- 30. 轉換的BigDecimal字符串貨幣
這是一個太寬泛的問題。將問題分解成幾個步驟(「從Web服務獲取信息」,「解析信息」,「顯示信息」),研究每個步驟,併發布有關您無法弄清楚的步驟的具體指出的問題。 – 2011-03-02 18:38:26
@JoshuaNozzi:我同意,*除非*有人已經爲你做了工作;) – 2011-03-02 21:44:03
Sacha確實是個幸運的傢伙。 ;-) – 2011-03-02 21:49:17