首页 > 解决方案 > 无法使用类型为“(文本:String?,jobImage:UIImage?)”的参数列表调用类型“Job”的初始化程序

问题描述

当我尝试在以下代码中添加 jobImage 时,出现“无法使用类型为 '(text: String?, jobImage: UIImage?)' 的参数列表调用类型为 'Job' 的初始化程序”作为错误:

let newJob = Job(text: textView.text, jobImage: takenImage)

这是根据 Job.swift 的代码

var jobImage: UIImage!

init(text: String, jobImage: UIImage, addedByUser: String, userImage: UIImage) {
    self.text = text
    self.jobImage = jobImage
    self.addedByUser = addedByUser
    self.userImage = userImage
    ref = Database.database().reference().child("jobs").childByAutoId()
}

你有一个想法我该如何解决这个错误?

标签: iosswift

解决方案


解决这个问题的两种方法,

解决方案1:

保持参数为optional,

var text: String?
var jobImage: UIImage?
var addedByUser: String?
var userImage: UIImage?

init(text: String? = nil, jobImage: UIImage? = nil, addedByUser: String? = nil, userImage: UIImage? = nil) {
    self.text = text
    self.jobImage = jobImage
    self.addedByUser = addedByUser
    self.userImage = userImage
    ref = Database.database().reference().child("jobs").childByAutoId()
}

let newJob = Job(text: textView.text, jobImage: takenImage)

解决方案2:

根据方法在方法调用中传递所有必需的值defination

let newJob = Job(text: textView.text, jobImage: image, addedByUser: "addedUser", userImage: userImage)

推荐阅读