ios – 无法使用StringLiteralConvertible类型的参数列表调用’init’

前端之家收集整理的这篇文章主要介绍了ios – 无法使用StringLiteralConvertible类型的参数列表调用’init’前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我尝试运行下面的代码时,我收到此错误

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

我尝试在我的课程中使用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,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: "",time: NSData(),text: "")

解决方法

您对TextMessage init的调用中有错误的数据类型,应该是NSDate()

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

猜你在找的Xcode相关文章