使用nil合并运算符递增值时的问题

时间:2018-10-25 08:11:29

标签: ios swift

有一个函数检查领域数据库中的最大值,如果有,则将最大值增加1,如果没有最大值,则该值将为0。这样给出……

func chatMessageIncrementId() -> Int {
    let realm = try! Realm()
    var id = realm.objects(ChatMessage.self).map { $0.id }.max() ?? 0
    id = id + 1
    return id
}

但是我想要实现的是我不希望id = id + 1行,而是希望将其合并到var id = realm.objects(ChatMessage.self)….行本身。

我该如何实现……?

1 个答案:

答案 0 :(得分:0)

您可以简单地使用括号将id的当前值分组,然后向其添加1??不是三元运算符,而是Optional的零合并运算符。

let id = (realm.objects(ChatMessage.self).map { $0.id }.max() ?? 0) + 1