簡體   English   中英

如何在不同時間段內跟蹤數據(快速)-計數器/習慣跟蹤應用程序

[英]How to keep track of data over various periods of time (Swift) - Counter/Habit Tracking App

我正在嘗試創建一個簡單的計數器/習慣跟蹤應用程序,使用戶可以查看他們在一定時間內(每天/每周/每月/每月/每年/總計)完成任務的次數。

我的問題是:隨時間推移跟蹤變量的最佳方法是什么,以便當用戶選擇一個時間段時,變量的值可以更新以反映該更改?

一些例子可以澄清我的意思:

  • 最初創建用於跟蹤鍛煉的每月計時器的用戶應該能夠切換到每周計時器,並根據需要查看數據更新(一周中應少於一個月)。
  • 創建了每日計數器的用戶應該看到每日計數器在每天的午夜重置為0,並且可以比較前一天的值。
  • 創建“總計”計數器的用戶應能夠切換到任何時間段(每天/每周/每月/每年),並根據需要查看計數器更新。

我的應用程序的UI基本上是一個自定義表格視圖,其中包含計數器編號,計數器名稱以及跟蹤計數器編號的時間段。 詳細信息視圖允許用戶添加/減去計數器的值。

我已經為大腦和Google奮斗了很長時間,因此,我將非常感謝您的幫助!

每個任務應有一個日期。 當應用需要查詢每天/每周/每月/每年的平均值時,您可以使用NSPredicate僅限制給定時間段內的結果。

例如,這是一個謂詞,用於模擬我為我的一個應用程序編寫的上周場景:

  func lastWeekPredicate() -> NSPredicate {
    let calendar = NSCalendar.currentCalendar()
    let endDate = NSDate()
    let startDate = calendar.dateByAddingUnit(.CalendarUnitDay, value: -7, toDate: endDate, options: nil)
    return NSPredicate(format: "day >= %@ AND day =< %@", argumentArray: [startDate!, endDate!])
  }

假設您使用Core Data建模了數據。 使用該謂詞查詢將為您提供上周完成的所有任務的結果。 謂詞可以修改為工作幾天,幾個月,一年或任何指定的天數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM