2015-01-06 2 views
4

, когда я пытаюсь запустить код ниже, я получаю эту ошибку:не может ссылаться на «инициализации» со списком аргументов типа StringLiteralConvertible

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

Я попытался с помощью NSString и строки в моем классе, но все с той же проблемой. Может ли кто-нибудь вести меня, что мне здесь не хватает?

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: "") 
+0

Какая линия бросает ошибку? let msg? – Aggressor

+0

да, пусть msg выбрасывает ошибку –

+0

Я так думал, у вас есть объект NSData, должен быть NSDate – Aggressor

ответ

8

У вас неправильный тип данных в вызове Отпрака INIT, должно быть NSDate()

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

Вы правы человек. Большое спасибо! –

Смежные вопросы