无法使用StringLiteralConvertibletypes的参数列表调用“init”

当我尝试运行下面的代码时,我得到这个错误:

Cannot invoke 'init' with argument list of type (id:StringLiteralConvertible,host:Contact,target:Contact,text:StringLiteralConvertible) 

我尝试在我的class级使用NSString和string,但仍然有同样的问题。 任何人都可以指导我在这里失踪?

 class Contact { let id:String? = "" let name:String? = "" var number:String? = "" var photoPath:String? = "" var onlineStatus:Bool? = false init(id:String,name:String) { self.id = id self.name = name self.number = "" self.photoPath = "" self.onlineStatus? = false } } class Message { var id:String? var time:NSDate? var host:Contact? var target:Contact? init(id:String,host:Contact,target:Contact,time:NSDate) { self.id = id self.host = host self.target = target self.time = time } } class TextMessage:Message { var text:String? init(id: String, host: Contact, target: Contact, time: NSDate, text: String) { super.init(id: id, host: host, target: target, time: time) self.text = text } } let host = Contact(id: "", name: "") let target = Contact(id: "", name: "") let msg = TextMessage(id: "", host: host, target: target, time: NSData(), text: "") 

您在调用TextMessage init时遇到错误的数据types,应为NSDate()

 let msg = TextMessage(id: "", host: host, target: target, time: NSDate(), text: "")