Ios tableview swift的自定义对象
我正在将自定义类对象绑定到表视图,但它没有显示任何内容Ios tableview swift的自定义对象,ios,uitableview,swift2,Ios,Uitableview,Swift2,我正在将自定义类对象绑定到表视图,但它没有显示任何内容 class car{ var carName:String = "" var carModel:String = "" var carPic:String = "" } 在我的控制器中 var cars = [car](); 在viewdidload()中用coredata填充对象 我能够在控制台中正确地看到carName,但是当我查看视图时,它没有显示任何内容,它是空的,但是我能够对选择行事件执行所有操作 我认为这可能是由于限制
class car{
var carName:String = ""
var carModel:String = ""
var carPic:String = ""
}
在我的控制器中
var cars = [car]();
在viewdidload()中用coredata填充对象
我能够在控制台中正确地看到carName,但是当我查看视图时,它没有显示任何内容,它是空的,但是我能够对选择行事件执行所有操作
我认为这可能是由于限制,但如果我将此表视图与某个数组绑定,它会在UI上正确显示数据。您在控制台上打印的内容似乎不正确 您的声明
print(carName)
未访问您的汽车阵列
尝试添加print(row.carName)
以调试您的问题
如果您在控制台中获得正确的输出,那么这意味着
cell.carNameLabel.text = carName
应该为标签添加正确的值
但是,基于您显示的代码,我认为它不正确,因为我无法看到carName
来自cars
数组中的数据
你也应该展示一些类似的东西
class SearchTableViewCell: UITableViewCell {
@IBOutlet var carNameLabel: UILabel!
}
这样我们就可以确保标签存在
另外,作为命名的提示,类名应该以大写字母开头。这是苹果和大多数iOS开发人员的惯例。看来需要SearchTableVIewCell的内容才能知道为什么这不起作用。你能添加它吗?告诉我们你是如何建立汽车表的。也就是说,如果响应网络请求,在填充完数组后是否调用
tableView.reloadData()
?此外,顺便说一句,您通常希望遵循Cocoa命名约定,并以大写字母开头类名(例如,Car
);i<10;i++{var car=car();car.carName=“Name”+String(i)car.carModel=“Testing”self.cars.append(car);}self.tableView.reloadData();即使以这种方式绑定,也无法在UI上看到任何内容。是否设置了tableView的数据源
和委托
?您可以在IB中或以编程方式执行此操作。确保您的UITableViewDataSource
方法被调用。另外,请确保您的numberofrowsinssection
正在返回cars.count
。很抱歉,打印行时,我的操作与您编写的相同。carName正在调试器中打印当前名称,但仍然无法在我的表视图中看到任何内容。如果您硬编码一个字符串,如cell.carNameLabel.text=“某个汽车名称”
?这将决定您的标签是否可以显示文本。
class SearchTableViewCell: UITableViewCell {
@IBOutlet var carNameLabel: UILabel!
}