-2

我在 Swift 4 中有一个简单的类,如下所示:

class Message {

    var messageBody : String = ""
    var sender : String = ""

}

我想(在一行中)用这个对象的一个​​实例填充一个变量。

我试着这样做:

func retrieveMessages() {
    let messageDB = Database.database().reference().child("Messages")
    messageDB.observe(.childAdded) { (snapshot) in
        let snapshotValue = snapshot.value as! Dictionary<String,String>
        let text = snapshotValue["MessageBody"]!
        let sender = snapshotValue["Sender"]!
        let message = Message(messageBody: text, sender: sender) // relevant one liner
    }
}

但这不起作用。我究竟做错了什么?

另请注意,这是:

let message = Message()
message.messageBody = text
message.sender = sender

作品。

4

1 回答 1

2

只需使用提供免费成员初始化程序的结构

struct Message {   

    var messageBody : String 
    var sender : String
}

或者在上课的情况下写一个

class Message {

    var messageBody : String 
    var sender : String

    init(messageBody : String, sender : String) {
       self.messageBody = messageBody
       self.sender = sender
    }
}

在这两种情况下,都不需要分配默认值。

有关更多信息,请阅读Swift 语言指南:初始化

于 2018-08-17T11:26:39.957 回答