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

时间:2014-09-25 00:14:40

标签: ios swift var null

Swift中,例如我对此struct有一个model

struct Message {
    var message: String = ""
    var timestamp: String = ""
    var id: String = ""
}

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

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

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

基本上将变量设置为nilempty string会更有效吗? nilempty string相比内存较少吗?

2 个答案:

答案 0 :(得分:6)

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

然后,如果您想改进代码,可以为struct使用 memberwise initializer

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

let message = Message(message: "Some message", timestamp: nil, id: "Id14")

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

答案 1 :(得分:-5)

尽可能避免使用期权。存储的属性不像在objective-c中那样神奇。如果合适,只需给它们默认值。