我正在将JSON数据解析为UITableView
,其中它由一个图像和5个标签组成,其中一个标签的类型为Int
,其余标签的类型为String
。我已经解析了类型String
的数据,但是当我将Int
类型添加到模型类中,然后用cellForItemAt
的{{1}}方法编写用于显示单元格的代码时,它说无法分配Int类型的值转换为String。
这是我尝试过的应用的屏幕截图:
在此显示为UITableViewDelegate
的地方,我要显示firstappear
之类的年份。
模块类别:
1970
ViewController:
此外,当我单击表格视图中的单元格时,我想将所有内容显示到另一个视图中。我尝试了表视图的didselectrowat方法,但没有正确获取
我的didselectroe方法的源代码如下
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
}
}
我的另一个视图控制器文件名为heroesdetailsviewcontroller swift文件,如下所示:
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)
}
代码屏幕截图:
答案 0 :(得分:1)
您正在将Int
类型分配给永远不会接受的标签。因此,如下更新您的以下代码行:
cell.labelAppear.text = String(here.firstappearance ?? 0)
答案 1 :(得分:1)
我刚刚查看了API请求-> https://simplifiedcoding.net/demos/marvel/
firstappearance是字符串,将您的API模型更新为字符串,而不是整数。
class Hero {
var firstappearance:String?
}
可以理解为什么您认为它是int,但要检查数据的类型而不是值。
答案 2 :(得分:0)
不要再次将种姓输入Int .....
cell.labelAppear.text = String(hero.firstAppearance)
UILabel的text属性需要字符串。