我收到以下警告嘗試的NSDate轉換爲日期並在收到警告
從強制投'的NSDate?到'日期'只解開和橋接;你是否 的意思是使用'!'用'as'?
上下面的行的代碼:
pickDate.date = item?.date as! Date
其中pickDate
爲UIDatePicker
。該代碼有效,如果我嘗試按照建議的修復方法進行操作,則會循環顯示其他警告或錯誤,這些警告或錯誤不會更好。
有什麼建議嗎?
我收到以下警告嘗試的NSDate轉換爲日期並在收到警告
從強制投'的NSDate?到'日期'只解開和橋接;你是否 的意思是使用'!'用'as'?
上下面的行的代碼:
pickDate.date = item?.date as! Date
其中pickDate
爲UIDatePicker
。該代碼有效,如果我嘗試按照建議的修復方法進行操作,則會循環顯示其他警告或錯誤,這些警告或錯誤不會更好。
有什麼建議嗎?
if let model = item, item?.date != nil{
pickDate.date = model.date
}
產品實體沒有提供足夠的信息(包括更好的實體的定義),但根據消息,item?.data
是NSDate?
型(又名Optional<NSData>
)的。您可以轉換到NSDate
與Date
as
-casting,以及NSDate?
到Date?
:
(你通常不NSDate
和Date
之間進行轉換時使用as!
或as?
)
if let theDate = item?.date as Date? {
pickDate.date = theDate
} else {
//Generally, silently ignoring unexpected value would be a bad habit.
print("`item?.date` is nil")
}
item
可能爲零。那麼item?.data
也許爲零。 試試這個:
pickDate.date = item.date! as Date
但這:
pickDate.date = item!.date as! Date
或
pickDate.date = (item?.date)! as Date
使用斯威夫特3.X(Xcode中8.3.3),我是能夠得到與擺脫警告假設「item」不再是可選的(在我的代碼中我可以如果 - 讓它)。
什麼是'item'? – vadian
項目是實體 – RTB
這些建議都無效 - 同樣的問題。我可以通過從1970年獲取ms數來解決此問題,然後創建一個新日期,但感覺必須有更直接的方法。 – RTB