1週間後にユーザーがアプリを起動したときにバックグラウンドで1週間に1回切り替えることができます。ユーザーがその週にアプリを使用すると、毎日値が変わります。 variable b to false
しかし、週に1度、その変数がfalseになっている任意の日にその変数をtrueに戻したいと思います。私はAppDelegate's didFinishLaunchingWithOptions
に入れようとした機能を持っていますが、チェックの仕方が正確ではないので、うまく動作しませんでした。これは私の試みです:タスクを週に1回または定期的に実行するiOS
func resetOnSunday() {
let date = NSDate()
let formatter = NSDateFormatter()
let timeFormatter = NSDateFormatter()
formatter.dateFormat = "EEEE"
let WeekDay = formatter.stringFromDate(date)
timeFormatter.dateFormat = "HH:mm a"
let time = timeFormatter.stringFromDate(date)
if time >= "00:00 AM" && time <= "00:02 AM" && WeekDay == "Sunday" {
var b = true
}
}
どのように行うことができますか?ありがとう。
あなたのアプローチは間違っています。最後の更新の日付と値を保存するだけで済みます。アプリケーションが開いたら、すべての変更を直接行う必要があります。実際の変更を模倣することはバックグラウンドで起こり、ユーザーは実際の最新の現在の値のみを表示します。たとえば、毎週日曜日に1ずつカウンターを増やし、現在の値(たとえば2など)と現在の日付を保存する必要があります。また、ユーザーが5週間後にアプリを開くと、最後に日曜日をカウントする必要がありますカウンターを更新して増やす5のため、ユーザーは更新された値7を直ちに参照します。 – holex