我正在构建一个Swift习惯构建应用程序.在某一时刻,用户选择他们想要创建的习惯的持续时间(以天为单位).用户还可以选择他们想要练习的星期几(星期日,星期一,星期二等).开始日期是他们养成习惯的日子.
我目前有开始日期和结束日期(基于用户选择的天数).但是,在该日期范围内,我需要提取用户选择的特定日期的日期.
我的想法是,对于时间间隔内的每个工作日值'x'(startDate,endDate),返回日历日期.但是,我尝试创建一个DateInterval,我无法迭代它,因为它不符合协议'序列'.
有没有一种有效的方法来迭代这个日期范围并提取这些其他日期?有没有更好的方式,我还没有想到?
这是我目前的日期入门代码如下:
var date = Date()
var duration = 10
let calendar = Calendar.current
let dateEnding = Calendar.current.date(byAdding: .day, value: duration, to: date as Date)!
//Returns a number representing day of the week. i.e. 1 = Sunday
let weekDay = calendar.component(.weekday, from: date)
//Initializing a time interval, based on user selected duration and start date
let timeInterval = DateInterval.init(start: date, end: dateEnding)
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助...
我正在构建一个iOS Swift习惯构建应用程序,它需要在某些用户指定的时间间隔和/或日期向用户发送推送通知.
例如,用户1创造了一种新习惯.它们指定了它们希望持续多长时间,它们想要执行它的日期,执行任务的时间等等.开始时间是它们创建它的那一天.用户在他们应该执行任务时接收推送通知.
我很好奇最有效的方法(有效的记忆等)是实现这些提醒,并跟踪与日期相关的习惯的时间.
NSTimer是最优雅的解决方案吗?NSTimer是否在后台运行,我读过这是一个内存密集型解决方案?
我确信这个问题会被贬低,但我一直在做研究,并试图找到一个明确的答案,以便在这个问题上找到一个好的起点.这是我的第一个iOS/Swift应用程序.谢谢您的帮助.