我有以下代码。
var caseRate = [NSInteger]()
// Configure the cell...
casecell.casename.text = caseName[indexPath.row]
casecell.casecontent.text = caseDetail[indexPath.row]
casecell.caserate.text = caseRate [indexPath.row]
此行显示错误:
casecell.caserate.text = caseRate? [indexPath.row]
无法将'NSNumber'类型的值转换为预期的参数类型'NSInteger'(又名'Int')
我尝试过在其他问题中找到的不同解决方案,例如使用后卫,没有运气。
答案 0 :(得分:2)
如果你真的需要使用NSIntegers而不是Swift类型的Int,你可以使用NSNumber.integerValue来获取NSInteger。
编辑:
这个问题比我想象的更简单。字面上只是使用字符串插值。
casecell.caserate.text = "\(caseRate[indexPath.row])"
答案 1 :(得分:2)
你可以将你的代码迅速转换为:
struct Case {
let name: String
let detail: String
let rate: Int
}
let cases = [Case]()
// Configure the cell...
let case = cases[indexPath.row]
casecell.casename?.text = case.name
casecell.casecontent?.text = case.detail
casecell.caserate?.text = String(case.rate)
这使您不必维护三个独立的案例信息数组,以及由不一致的数组count
导致的任何异常。