2017-07-15 65 views
0

我收到以下警告嘗試的NSDate轉換爲日期並在收到警告

強制投'的NSDate?到'日期'只解開和橋接;你是否 的意思是使用'!'用'as'?

上下面的行的代碼:

pickDate.date = item?.date as! Date 

其中pickDateUIDatePicker。該代碼有效,如果我嘗試按照建議的修復方法進行操作,則會循環顯示其他警告或錯誤,這些警告或錯誤不會更好。

有什麼建議嗎?

+0

什麼是'item'? – vadian

+0

項目是實體 – RTB

+0

這些建議都無效 - 同樣的問題。我可以通過從1970年獲取ms數來解決此問題,然後創建一個新日期,但感覺必須有更直接的方法。 – RTB

回答

0
if let model = item, item?.date != nil{ 

     pickDate.date = model.date 

} 
0

產品實體沒有提供足夠的信息(包括更好的實體的定義),但根據消息,item?.dataNSDate?型(又名Optional<NSData>)的。您可以轉換到NSDateDateas -casting,以及NSDate?Date?

(你通常不NSDateDate之間進行轉換時使用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") 
} 
0

item可能爲零。那麼item?.data也許爲零。 試試這個:

pickDate.date = item.date! as Date 

但這:

pickDate.date = item!.date as! Date 

pickDate.date = (item?.date)! as Date 
0

使用斯威夫特3.X(Xcode中8.3.3),我是能夠得到與擺脫警告假設「item」不再是可選的(在我的代碼中我可以如果 - 讓它)。