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

Swift ,举个例子,我有一个这个modelstruct

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

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

使用可选项而不是像这样的空string设置这些variables是最好的做法吗?

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

基本上将variables设置nilempty string会更有效吗? 内存vs empty string是否占用较less内存?

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

然后,如果你想改善你的代码,你可以使用成员初始值设定为你的struct

 struct Message { var message: String var timestamp: String? var id: String } let message = Message(message: "Some message", timestamp: nil, id: "Id14") 

最后,我怀疑Struct上的任何内存优化(包含可选或非可选属性)都会给您的应用程序/项目带来显着的改进。

只要有可能就避免select性。 存储的属性并不像它们在objective-c中那样神奇。 只要给他们默认值,如果适当的话。