ここにコードを添付します。 これはAPIである:「https://bittrex.com/api/v1.1/public/getmarketsummaries」APIをテーブルビューに追加し、列を追加して更新する
私は「MarketName」 の横の欄に「高」と「低」を追加したいのです。また、私はこれを10秒ごとにリフレッシュしたいです。
sendUpdateRequest()
のリフレッシュ部分がエラーになります。
完全なコードは次のとおりです。ここでは、コードの問題の
import UIKit
var listData = [[String : AnyObject]]()
class DemoJsonTableViewController: UITableViewController {
var listData = [[String : AnyObject]]()
override func viewDidLoad() {
super.viewDidLoad()
var timer : Timer? = nil
timer = Timer.scheduledTimer(timeInterval: 10, target: self, selector: (#selector(self.sendUpdateRequest)), userInfo: nil, repeats: true)
func sendUpdateRequest(){
let url:String = "https://bittrex.com/api/v1.1/public/getmarketsummaries"
let urlRequest = URL(string: url)
URLSession.shared.dataTask(with: urlRequest!) { (data, response, error) in
if(error != nil){
print(error.debugDescription)
}
else{
do{
var response = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! [String:AnyObject]
self.listData = response["result"] as! [[String:AnyObject]]
DispatchQueue.main.async {
self.tableView.reloadData()
}
}catch let error as NSError{
print(error)
}
}
}.resume()
}
}
// MARK: - Table view data source
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.listData.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
let item = self.listData[indexPath.row]
cell.textLabel?.text = item["MarketName"] as? String
let lastValue = item["Last"] as? NSNumber
cell.detailTextLabel?.text = lastValue?.stringValue
print(self.listData.count)
return cell
}
これはちょうど完璧です。 私はこのプロジェクトを完了するために切望しています。 あなたは[email protected]に私に連絡してもらえますか?私はあなたにプロジェクト全体を報いたいと思います。 もう一度ありがとう –