Невозможно присвоить значение типа Bool типу Представление базы данных String - PullRequest
1 голос
/ 05 марта 2020

Как добавить данные не строкового типа в DatabaseRepresentation. Я пробовал AnyObject, но не соответствует хэш-протоколу.

lastMessageRead относится к типу Bool или мне просто сохранить его как строку?

extension Channel: DatabaseRepresentation {

    var representation: [String : Any] {
        var rep = ["ownerName": ownerName]
        rep["ownerId"] = ownerId
        rep["participantName"] = participantName
        rep["participantId"] = participantId
        rep["lastMessage"] = lastMessage
        rep["lastMessageId"] = lastMessageId

        if let lastMessageRead = lastMessageRead {
            rep["lastMessageRead"] = lastMessageRead **Cannot assign Bool to String
        }

        if let id = id {
            rep["id"] = id
        }
        return rep
    }
}

Ответы [ 2 ]

3 голосов
/ 05 марта 2020

Вы можете попробовать это:

var representation: [String : String]

rep["yourData"] = "\(your data)"

Для даты:

    let formatter = DateFormatter()
    formatter.dateStyle = DateFormatter.Style.medium
    formatter.timeStyle = DateFormatter.Style.none
    formatter.dateFormat = "dd.MM.yyyy"
    let text = formatter.string(from: yourDateValue)
    rep["yourDate"] = text

Надеюсь, это поможет ...

0 голосов
/ 05 марта 2020

Тип rep выводится как [String:String] словарь.

Объявите rep как [String:Any], затем вы можете добавить any значение без преобразования.

Далее это необязательно необязательно связывать два значения. Если они nil ничего не добавлено.

var representation: [String : Any] {
    var rep = [String : Any]()

    rep["ownerName"] = ownerName
    rep["ownerId"] = ownerId
    rep["participantName"] = participantName
    rep["participantId"] = participantId
    rep["lastMessage"] = lastMessage
    rep["lastMessageId"] = lastMessageId
    rep["lastMessageRead"] = lastMessageRead   
    rep["id"] = id
    return rep
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...