我当前的项目有问题。首先,我喜欢实现一个JSON
API 请求,它允许我从 URL 中获取标题。问题:我想将JSON
数据显示为UITableViewCell
.
但Xcode
抛出以下错误:
无法将“FirstViewController.Title”类型的值分配给“String?”
也许我的代码有更多错误,因为我只是 Swift/Xcode 的初学者
我已经尝试过了:
cell.textLabel?.text = course.title as? String
但我收到如下警告信息:
Cast from 'FirstViewController.Title' to unrelated type 'String' always fails
这是我的代码示例:
var courses = [Course]()
let cell = "ItemCell"
override func viewDidLoad() {
super.viewDidLoad()
fetchJSON()
}
struct Course: Codable {
let title: Title
enum CodingKeys: String, CodingKey {
case title
case links = "_links"
}
}
struct Links: Codable {
}
struct Title: Codable {
let rendered: String
}
fileprivate func fetchJSON() {
let urlString = "ExampleURL"
guard let url = URL(string: urlString) else { return }
URLSession.shared.dataTask(with: url) { (data, _, err) in
DispatchQueue.main.async {
if let err = err {
print("Failed to get data from url:", err)
return
}
guard let data = data else { return }
do {
let result = try JSONDecoder().decode(Course.self, from: data)
self.tableView.reloadData()
} catch let jsonErr {
print("Failed to decode:", jsonErr)
}
}
}.resume()
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return courses.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell(style: .value1, reuseIdentifier: "ItemCell")
let course = courses[indexPath.row]
cell.textLabel?.text = course.title as? String // Cast from 'FirstViewController.Title' to unrelated type 'String' always fails
return cell
}
我只想将WordPress
帖子放入UITableView
- UITableViewCell
。
也许你可以告诉我我尝试的方法是否错误,但我真的不知道我是如何解决这个问题的
先感谢您