分配后我需要清除UITextField
的值。我可以使用nil
或空字符串""
完成此操作。像这样在一个应用程序中有500个UITextField
。
表演&记忆基于哪一个好?
参考代码:
let a = ""
let b:String? = nil
print(a.isEmpty) //true
print(b?.isEmpty ?? "value is nil") /*Value is nil*/
注意:
还有500个隐式展开的变量。我知道在隐式展开var
时它很糟糕。但是,我必须这样使用。
答案 0 :(得分:3)
如果我想在nil和" "
之间选择。我将使用nil参数,因为nil
比发送空字符串更好,因为根据我的字符串将被视为字符串,即使其长度为char
长度nil
空的,实际上会节省内存没有太大的区别。但是,如果有UITextFields
500,那么nil
就很重要了。
答案 1 :(得分:1)
nil (id)0
用于将空指针表示为objective-c对象。
""
是一个空字符串常量或字符串,其长度为0。
if dictionary.value(forKey:"aString" ) == nil
检查字典中是否存在特定密钥。
if dictionary.value(forKey:"aString") == ""
此行检查字典中是否有带“aString”键的条目,并将该条目与空字符串进行比较。结果将是以下之一:
在 Swift 中,nil
不是指针 - 它缺少某种类型的值。任何类型的可选项都可以设置为nil,而不仅仅是对象类型。
可选字符串
let myOptionalString: String? = nil
var myOptionalString: String? // myOptionalString is automatically set to nil
注意:如果您定义了一个可选变量而未提供默认值,则该变量将自动设置为nil:
非可选字符串:检查零长度。
let myString: String = ""
if myString.isEmpty {
print("String is empty.")
return // or break, continue, throw
}