在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?
}
基本上将变量设置为nil
与empty string
会更有效吗? nil
与empty string
相比内存较少吗?
答案 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中那样神奇。如果合适,只需给它们默认值。