Ios “类型”;“病人”;没有下标成员
我有一个名为“Patient”的全局类和一个类型为“Patient”的全局变量Ios “类型”;“病人”;没有下标成员,ios,swift,generics,swift2,Ios,Swift,Generics,Swift2,我有一个名为“Patient”的全局类和一个类型为“Patient”的全局变量 class Patient{ var id: Int var name: String var mileage: Double init(id:Int, name:String, mileage:Double){ self.id = id self.name = name self.mileage = mileage } } 这是我如何将pSample分配给类的 for var i=0;
class Patient{
var id: Int
var name: String
var mileage: Double
init(id:Int, name:String, mileage:Double){
self.id = id
self.name = name
self.mileage = mileage
}
}
这是我如何将pSample分配给类的
for var i=0; i<nou; ++i{
pSample = Patient(id: json[0][i]["ID"].intValue, name: json[0][i]["Name"].stringValue, mileage: json[0][i]["Mileage"].doubleValue)
}
为什么我会犯这个错误
错误1:类型患者没有下标成员您是否对
[pSample]
和pSample
感到困惑?您在for循环中所做的只是更新您拥有的一个Patient实例
var pSample: [Patient] = []
for var i=0; i<nou; ++i{
pSample += [Patient(id: json[0][i]["ID"].intValue, name: json[0][i]["Name"].stringValue, mileage: json[0][i]["Mileage"].doubleValue)]
}
var pSample:[患者]=[]
对于var i=0;在应用代码之后,我得到了另一个错误-类型“Element”(aka)(String,JSON)没有下标membersWell,我只是使用了.forEach
。事实上,我从未使用过json。我将重新编辑并使用您的for循环
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("tableCell", forIndexPath: indexPath) as UITableViewCell
//everything refers to this
if pSample != nil {
let patient = pSample![indexPath.row] //error1
if let nameLabel = cell.viewWithTag(102) as? UILabel{
nameLabel.text = patient.name
}
if let scoreLabel = cell.viewWithTag(103) as? UILabel{
scoreLabel.text = String(patient.mileage)
}
}else{
let patient = patientSample[indexPath.row] as Patient
if let nameLabel = cell.viewWithTag(102) as? UILabel{
nameLabel.text = patient.name
}
if let scoreLabel = cell.viewWithTag(103) as? UILabel{
scoreLabel.text = String(patient.mileage)
}
}
var pSample: [Patient] = []
for var i=0; i<nou; ++i{
pSample += [Patient(id: json[0][i]["ID"].intValue, name: json[0][i]["Name"].stringValue, mileage: json[0][i]["Mileage"].doubleValue)]
}