2016-12-27 10 views
-5

私は以下df.date()ライン、アプリのクラッシュを取得理由:日付形式がクラッシュするフォーマッタがなぜですか?

fatal error: unexpectedly found nil while unwrapping an Optional value

そして私もこの参照してください。私は間違って何をやっている

error: Execution was interrupted, reason: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)

let mydate = "2016-12-27" 
let df = DateFormatter() 
df.dateFormat = "MM/dd/yyyy" 
newDate = df.date(from: mydate) 

を?

+0

'df =" MM/dd/yyyy "' ?? –

+0

は 'df.dateFormat =" MM/dd/yyyy "でなければなりません。 – 4thSpace

答えて

3

は、この行df = "MM/dd/yyyy"があなたのdateFormatと文字列の日付が一致しない場合、それはゼロかもしれので、エラー、df.date(from:)リターンオプションDate?インスタンスをコンパイル与えるので、あなたのコードはコンパイルすらされています。今あなたの日付形式はyyyy-MM-ddです。このようにコードを変更してください。

let mydate = "2016-12-27" 
let df = DateFormatter() 
df.dateFormat = "yyyy-MM-dd" 
if let date = df.date(from: mydate) { 
    df.dateFormat = "MM/dd/yyyy" 
    let formattedDate = df.string(from: date) 
    print(formattedDate) 
} 
+0

はい、OPに' .dateFormat'がありませんでした。しかし、日付を "MM/dd/yyyy"の形式にしたい。しかし、私が言及したように、それはアプリをクラッシュさせます。 – 4thSpace

+0

@ 4thSpace日付を 'Date'インスタンスではなく文字列としてフォーマットできます。 –

+0

フォーマットがどのように見えるのかを制限する理由がわかりません。 – 4thSpace

0

私はあなたのような、着信Stringオブジェクトを解析するDateFormatterオブジェクトを伝えるために

df.dateFormat = "yyyy-MM-dd" 

を行うためのものだと思います。

関連する問題