“如果让nil”检查不在Swift 2.0中工作,但在Swift 1.2中工作正常。如果让nil在swift 2.0中没有按预期工作
在下面的代码中,“fetchNumbersFromCoreDataDB”函数返回nil。在getDatabaseDate函数中,我有一个条件“if let date = dbDate”。理想情况下,这种情况应该失败,并去其他块。但在Swift 2.0中,它将进入if块。在Swift 1.2中,相同的代码将会被其他块阻塞。我很困惑。这里有什么不同?
func getDatabaseDate() {
let dbDate : NSDate? = ((self.fetchNumbersFromCoreDataDB(“123456”) as DBNumbers!).dbDate)
if let date = dbDate {
print(“\(date)”)
}
else {
print(“No Date”)
}
}
func fetchNumbersFromCoreDataDB(Number:String) -> DBNumbers? {
var numArray = coreDataInterface.fetchAllObjectsFromEntity(info, withAttributeValues: [“No” : Number]) as! [DBNumbers]
return numArray.count>0 ? numArray[0] : nil
}
注:“DBDATE”是Coredata表
因此它打印日期或崩溃? – Wain