2017-01-29 11 views
-1

私の国のいくつかの銀行のウェブサイトから為替レートを取り出すことは可能ですか?銀行口座からの迅速な3通貨交換金額へのJsonの解析

私の国にアプリが指定されていて、今一週間試してみましたが、回答が見つかりませんでした。これはコードで解決策を教えてください。エラーの

import UIKit 

class ViewController: UIViewController,UIPickerViewDelegate,UIPickerViewDataSource { 

    @IBOutlet weak var lblDisplay: UILabel! 
    @IBOutlet weak var txtField: UITextField! 
    @IBOutlet weak var pkrView: UIPickerView! 

    var myCurrency:[String] = [] 
    var myValue:[Double] = [] 
    var activeCurrency:Double = 0 

     override func viewDidLoad() { 
     super.viewDidLoad() 

    let url = URL(string: "http://ca-egypt.com") 
    let task = URLSession.shared.dataTask(with: url!) { (data, response, error)in 

    if error != nil{ 
     print("error is here!")    
     }else{ 
      if let content = data{  
      do{   
      let myJson = try JSONSerialization.jsonObject(with: content, options: JSONSerialization.ReadingOptions.mutableContainers) as AnyObject 
      if let rates = myJson["rates"] as? NSDictionary{ 

      var firstOne = true 

      for (key,value)in rates{ 
      self.myCurrency.append((key as? String)!) 
      self.myValue.append((value as? Double)!) 
        } 
       }      
       }catch{ 

       } 

      } 
     } 
      self.pkrView.reloadAllComponents() 
    } 
     task.resume() 


    } 

    @IBAction func btnCalculateAction(_ sender: UIButton) { 

     lblDisplay.text = String(Double(txtField.text!)! * activeCurrency) 

     } 


    func numberOfComponents(in pickerView: UIPickerView,umberOfRowsInComponent component: Int) -> Int { 
     return myCurrency.count 
    } 
    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 
     return myCurrency.count 
    } 
    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 
     return myCurrency[row] 
    } 
    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 
     activeCurrency = myValue[row] 
    } 

} 

画像:

Screenshot

+0

エラーメッセージをプレーンテキストとして追加してください。インデックスに登録され、検索可能です – muescha

+0

魔女はそれが始まるからですか? – muescha

+0

法律ではありません – muescha

答えて

3

こんにちは@Ali代わりに、いくつかの銀行のウェブサイトからの為替レートをフェッチする、あなたには、いくつかのAPIを利用することができ、自由に入手可能であるか、またはすることができます有料APIを利用するオフコースでの為替レートの取得は違法です。彼らは誰かが価値を得ることを許さないでしょう。

さまざまな国の通貨レートを取得するには、毎日更新されているFixer.ioを使用してください。はい、無料で利用できます。

Fixer.ioは、欧州中央銀行が発行し、現在および過去の為替レートのための無料JSONのAPI、です。料金は毎日午後4時頃に更新されます。

例:

APIリンク:http://api.fixer.io/latest?base=USD

Alamofire.request("http://api.fixer.io/latest?base=USD") .responseJSON { response in 

       if let arr = response.result.value as? [String:AnyObject] 
       { 
        let usd_val = (arr["rates"]?["INR"] as? NSNumber)! 
        print(usd_val) 
       } 

      } 

あなたはJSON APIを解析し、この為替の値を使用することができ、このところで、あなたはあなたの国の通貨の為替を取得したい場合値を渡し、次に値を渡します。

例:日本の現在の為替レートを取得するには、その値を渡します。このような。 http://api.fixer.io/latest?base=JPY

あなたのお役に立てば幸いです。

関連する問題