ios - 数据未从 JSON Swift 获取

标签 ios json swift urlsession

我尝试了很多东西,但它们似乎都不起作用。我有这个 JSON [{"id":"1","name":"Dua Kumayl","location":"IABAT","date":"2019-06-13","Islamic":"Shawwal 8, 1440","时间":"19:30:00.000000","imageURL":""] 从这个链接:http://iabat.org/data.php 我尝试使用这段代码在 Swift 中获取数据:

import UIKit
   struct Event: Decodable {
       let id, name, location, date: String
       let Islamic, time, imageURL: String
    }
   class EventsViewController: UIViewController {
         override func viewDidLoad() {
             super.viewDidLoad()
             let url = "http://iabat.org/data.php"
             guard let urlObj = URL(string: url) else {return}     
              URLSession.shared.dataTask(with: urlObj) {(data, 
    response, error) in

        do {
            var Events = try JSONDecoder().decode([Event].self, from: 
       data!)

            for Event in Events {
                print("Hi")
                print(Event)
                print(Event.name)
            }
        }
        catch {
            print("error")
            }
        }
    }
}

但由于某些原因,它不起作用。它也不会打印任何东西,即使它是 for Event in Events do/catch 中的字符串。

最佳答案

您需要通过调用 resume() 来启动 dataTask ,如果有任何错误,也总是执行 print(error) 以跟踪错误


 class EventsViewController: UIViewController {
         override func viewDidLoad() {
             super.viewDidLoad()
             let url = "http://iabat.org/data.php"
             guard let urlObj = URL(string: url) else {return}     
              URLSession.shared.dataTask(with: urlObj) {(data, 
    response, error) in

        do {
            var Events = try JSONDecoder().decode([Event].self, from: 
       data!)

            for event in Events {
                print("Hi")
                print(event)
                print(event.name)
            }
        }
        catch {
            print(error)
            }
        }.resume() // here
    }
}

关于ios - 数据未从 JSON Swift 获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56926783/

相关文章:

ios - UICollectionViewCell 中的 UITableView

ios - 在 iOS 项目中使用 schedule()

json - Golang 返回嵌套的 JSON

ios - iOS 9 上静态 UITableViewCell 中的多行 UILabel

swift - Apple Swift - 检查字符串中是否存在字符

ios - Tokbox iOS : Video call disconnects when phone lock

javascript - 由于 JSON 对象中的 $promise 和 $resolved,ngResource PUT 返回错误请求

c# - 访问 JSON 字符串中的无效成员名称

swift - 在状态恢复发生之前执行代码 (macO)

ios - 使用 AVAudioPlayer 相互播放声音