在Xcode中调用参数'Coder'时缺少参数

时间:2015-11-06 22:14:39

标签: xcode swift

需要初始化一个对象,但我的初始化程序不合作。到目前为止我已经有了这个,但我不确定如何将参数传递给我的对象初始化器。

init(coder aDecoder: NSCoder, caseImage: UIImage, inputName: String, inputDate: String) {
    self.caseImage = caseImage
    self.caseName.text = inputName
    self.caseDate.text = inputDate
    super.init( coder: aDecoder )
}

required init(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

此代码在另一个类中调用初始化程序:

func loadSampleData() {
    let Photo1 = UIImage(named: "retino1")!
    let case1 = TableCell(caseImage: Photo1, inputName: "John Smith", inputDate: "2015-10-18" ) //error
    patientCaseArray = [case1]
}

1 个答案:

答案 0 :(得分:3)

根据您发布的内容,您必须在init语句中传入解码器。以下是您要调用的内容,因为它不存在而无效:

TableCell(UIImage, String, String ) 

所以你需要创建它:

init(caseImage: UIImage, inputName: String, inputDate: String) {
    super.init( coder: NSCoder() )
    self.caseImage = caseImage
    self.caseName.text = inputName
    self.caseDate.text = inputDate

}

或传入NSCoder():

 let case1 = TableCell(coder:NSCoder(), caseImage: Photo1, inputName: "John Smith", inputDate: "2015-10-18" )