2.0.0: Merge pull request #39 from jianstm/2.x
❗️❗️❗️This release contains some breaking changes.
Warning
The initial design of Task
refers to Timer
: It will be implicitly held by an internal object, if you want to remove it, you need to explicitly call the invalidate/cancel
method.
But soon, I realized that it was easy to ignore this feature and caused memory leaks.
So in 2.0.0, Task
is no longer automatically held, that is, if no external variables are explicitly pointed to it, this task will be destroyed.
Fixed
- Calculation issue in
every(_ weekday: Weekday)
andevery(_ monthday: Monthday)
.
Added
TaskCenter
. From now on, you can use your own task center to manage tasks.task.executionDates
. Records the date each time the task is executed.- More tests.
Removed
task.timeline
. All timeline properties are now accessible directly from the task.plan.do(host: obj)
. Since tasks are no longer implicitly held by task centers, I don't think the host mechanism is necessary.
Updated
- Some renaming, to make the api more swift!