Swift:模型结构,使用选项与空值的初始化

The*_*mad 3 null var ios swift

Swift,例如,我有一个struct为此model:

struct Message {
    var message: String = ""
    var timestamp: String = ""
    var id: String = ""
}
Run Code Online (Sandbox Code Playgroud)

我将从数据库中Messages使用它来实例化多个struct,然后TableView用它们填充.

使用选项而不是用空字符串设置这些变量是最佳做法吗?

struct Message {
    var message: String?
    var timestamp: String?
    var id: String?
}
Run Code Online (Sandbox Code Playgroud)

基本上将变量设置为nilvs 会更有效empty string吗?是否nil需要更少的内存empty string

Ima*_*tit 7

在考虑优化之前,你必须问自己一个好问题:是否有Message可能包含一个或几个属性的选项?如果是,请使用选项,如果不是,请不要使用选项.

然后,如果您想改进代码,可以使用memberwise初始化程序struct:

struct Message {
    var message: String
    var timestamp: String?
    var id: String
}

let message = Message(message: "Some message", timestamp: nil, id: "Id14")
Run Code Online (Sandbox Code Playgroud)

最后,我怀疑任何内存优化Struct(使用可选或非可选属性)都会对您的应用程序/项目产生任何重大改进.