if (self.account.text?.isEmpty)! {
}
我只是在ViewDidLoad()中写下这个函数。 (帐户是文本字段)
我认为' self.account.text'可以是nil,' self.account.text?'没关系。 但是我不知道为什么&self; .ccount.text?.isEmpty'要求'!' - 展开。
'?self.account.text .isEmpty'是对的,不是吗?
我总是很感激所有答案。
答案 0 :(得分:2)
这是因为表达式self.account.text?.isEmpty
的值为bool
或值为nil
,您无法使用nil
作为如果条件。
在这里使用!
是错误的。如果text
为nil
,则代码将崩溃。
而是写:
if self.account.text?.isEmpty == true { ... }
// or equivalently:
if self.account.text?.isEmpty ?? false { ... }
如果您想在text
为nil
时跳过if,或者:
if self.account.text?.isEmpty != false { ... }
// or equivalently:
if self.account.text?.isEmpty ?? true { ... }
如果您想在text
为nil
时输入if。
如果text
永远不应该nil
,那么您可以在!
之后直接使用text
:
if self.account.text!.isEmpty { ... }
答案 1 :(得分:0)
self.account.text
是可选的布尔值,因此它将是nil或boolean。展开布尔值必须检查它是否等于true或false,就像这样。否则它会因为nil值而崩溃。
import UIKit
var isempty: Bool?
if isempty == true
{
print("i am empty")
}
else
{
print("hy i am not empty")
}
//it will print "Hy i am not empty" because isempty has nil