我需要在原型单元格中添加标签,但出现错误“ UITableViewCell类型的值没有成员'movieTitleLabel'。
import UIKit
class FirstTableView: UITableViewController {
let model = MovieModel()
override func viewDidLoad() {
super.viewDidLoad()
}
override func numberOfSections(in tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return model.MovieArray.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "movieCells", for: indexPath) as! TableViewCell
cell.movieTitleLabel?.text = model.movieArray[indexPath.row]
return cell
}
在编辑器中,我将FirstTableView设置为委托和数据源。
我创建了一个名为TableViewCell的新子类,将标签链接到该类。现在我不知如何将movieArray输出到该标签。
答案 0 :(得分:1)
您忘记将cell
下放到UITableViewCell
子类中,因此您仅引用超类UITableVoewCell
,而该超类没有任何movieTitleLabel
。
要解决此问题,请在将as! YourTableViewCellSubclass
出队的行末添加cell
let cell = tableView.dequeueReusableCell(withIdentifier: "movieCells", for: indexPath) as! YourTableViewCellSubclass
答案 1 :(得分:1)
注意以下几点:
代码:
<target name="testall">
<mkdir dir="${junit.output.dir}" />
<junit fork="yes" printsummary="withOutAndErr" haltonfailure="off" showoutput="yes">
<formatter type="xml" />
<batchtest fork="no" todir="${junit.output.dir}">
<fileset dir="${testclass.dir}">
<include name="**/*Test.class" />
</fileset>
</batchtest>
<classpath refid="MobileHrAdapterService.classpath" />
<jvmarg line="-ea" value="-Dfile.encoding=UTF-8" />
</junit>
</target>
答案 2 :(得分:0)
您的原型单元应该已经指定了一个实现类-它必须是UITableViewCell的子类。如果完成了此操作,则将dequeueReusableCell的结果向下转换为此类。
您还应该已将该类中的movieTitleLabel插座连接到情节提要中的标签。从上面看,好像您已将其连接到UITableViewController(@IBOutlet弱mov movieTitleLabel:UILabel!)一样。您应该将其从VC中删除,仅将其放在UITableViewCell类中。