Я анализирую данные JSON в UITableView
, в котором они состоят из одного изображения и 5 меток, одна из которых имеет тип Int
, а остальные имеют тип String
.Я проанализировал данные для типа String
, но когда я добавляю тип Int
в свой класс модели и затем пишу код для отображения ячеек в методе cellForItemAt
для UITableViewDelegate
, он говорит, что не может присвоить значение типа Int для String.
Вот скриншот моего приложения, которое я пробовал:

Здесь, где написано firstappear
, я хочуотображать год как 1970
.
Модальный класс:
class Hero {
var name:String?
var team:String?
var imageUrl:String?
var realname:String?
var firstappearance:Int?
var publisher:String?
init(name:String?, team:String?, imageUrl:String?, realname:String?, firstappearance:Int?, publisher:String?) {
self.name = name
self.team = team
self.imageUrl = imageUrl
self.realname = realname
self.firstappearance = firstappearance
self.publisher = publisher
}
}
ViewController:

Также, когда я щелкаю ячейку в табличном представлении, я хочу отобразить все содержимое в другом представлении.Я пытался использовать метод didselectrowat для табличного представления, но неправильно получал
мой исходный код для метода didselectroe, как показано ниже
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let heroesDetails:HeroesDetailsViewController = self.storyboard?.instantiateViewController(withIdentifier: "HeroesDetailsViewController") as! HeroesDetailsViewController
heroesDetails.heroImage = heroesDetails.detailsImg
heroesDetails.labelName = heroesDetails.detailsName
heroesDetails.labelPublish = heroesDetails.detailsPublisher
heroesDetails.labelAppear = heroesDetails.detailsAppear
heroesDetails.labelTeam = heroesDetails.detailsTeam
heroesDetails.labelRealName = heroesDetails.detailsRealName
self.navigationController?.pushViewController(heroesDetails, animated: true)
}
мой другой файл контроллера представления, называемый heroesdetailsviewcontroller swift, как показано ниже:
import UIKit
class HeroesDetailsViewController: UIViewController {
@IBOutlet weak var detailsImg: UIImageView!
@IBOutlet weak var detailsName: UILabel!
@IBOutlet weak var detailsRealName: UILabel!
@IBOutlet weak var detailsTeam: UILabel!
@IBOutlet weak var detailsAppear: UILabel!
@IBOutlet weak var detailsPublisher: UILabel!
var heroImage: UIImage!
var labelName: String!
var labelTeam: String!
var labelAppear: String!
var labelPublish: String!
var labelRealName: String!
override func viewDidLoad() {
super.viewDidLoad()
detailsImg.image = heroImage
detailsName.text = labelName
detailsRealName.text = labelRealName
detailsTeam.text = labelTeam
detailsAppear.text = labelAppear
detailsPublisher.text = labelPublish
// Do any additional setup after loading the view.
}
}
скриншот кода:
