import UIKit
class ViewController: UIViewController {
var testArray:[String] = []
override func viewDidLoad() {
super.viewDidLoad()
doThis(nil)
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func doThis(completion:(() -> Void)?) {
dispatch_async(dispatch_get_main_queue(), {() -> Void in
if let completionBlock = completion {
completionBlock()
}
self.testArray.append("first")
print(self.testArray)
if self.testArray == [] {
print("has data")
} else {
print("null")
}
})
}
}
输出:
["first"]
null
我想知道为什么数组是nil
?
答案 0 :(得分:2)
数组不是零。它不能为零,因为nil是Optional
的一种情况,并且数组未被声明为Optional
。
据推测,您想知道为什么您的程序会打印null
。它会打印null
,因为if
条件为false。 if
条件为self.testArray == []
。这是假的,因为数组不是空的。
也许你在没有意识到的情况下扭转了这种状况的感觉。
答案 1 :(得分:0)
由于你的self.testArray有项目self.testArray == []将是false。另外,使用self.testArray.count>会更好。检查数组项目时为0。