2017-04-11 12 views
0

私のアプリでは、最後にアプリを開いたときの日付が変わったかどうかを調べる必要があります。そのため、私はあなたが以下を見ることができるようにしました。問題は、何らかの理由でうまくいかないことです。私のアプリは、あなたがそれを使用した行を数えます。そのため、日数が変更された場合は、日のカウンタに1を加算します。スイフト3:日付が変更されているかどうか調べます。

は、ここに私のブール値です:

var dateChanged: Bool 
{ 
    let dateNow = Date() 
    var oldDate = defaults.object(forKey: "oldDate2") as? Date 

    if dateNow != oldDate 
    { 
     return true 
    } 
    else 
    { 
     return false 
    } 

    oldDate = newDate 
    defaults.set(oldDate, forKey: "oldDate") 
    defaults.synchronize() 

} 

どのように私はそのブールを向上させることができますか? oldDate = newDateに「それは決して実行されません」と書かれています。手伝って頂けますか?

ありがとうございました!

+0

"oldDate2"を取得していて、 "oldDate"を設定しています。また、 'synchronize'を呼び出す必要はありません – Paulw11

+1

決して実行されないコードについての警告を受け取りませんか? – vadian

答えて

2

CalendarメソッドisDateInTodayを使用すると、今日の日付を確認する必要があります。また、関数から値を返す前にコードを記述する必要があります。

if !Calendar.current.isDateInToday(oldDate) { 
    defaults.set(Date(), forKey: "oldDate") 
    return true 
} 
return false 
+0

うわー、いいよ!どうもありがとうございました! – Whazzup

1

@Whazzup - 問題は、日付を設定しようとする前に、あなたがreturnを実行することである - それは実行されることはありません理由です。日付が等しい場合にのみ返品が必要で、何もする必要はありません。

関連する問題