A simple application to add tasks and track whether they have been completed or not
I used :
- Core Data to save and retrieve data when close the application and open it again
- 'Charts'Cocopods to display the data on chart
import CoreData
- start with declaring the variable as 'context'
- Our managed object context manages the changes that have been made to the objects
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
- Whether we are creating, updating, or deleting records, in order for those changes to persist we must call save on the managed object context, I declare it as a reference to that method
let saveContext = (UIApplication.shared.delegate as! AppDelegate).saveContext
Here, I created my Entity and called it Task, and it has some features :
func fetchData(){
// fetch our Entity task
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Task")
do {
let results = try context.fetch(fetchRequest)
// add the result as an array of this entity
TaskList = results as! [Task]
} catch {
print("\(error)")
}
//update our Tasks Table View
tableView.reloadData()
}
func addNewTask(title : String , dec : String , date :Date)
{
//create new object
let newTask = Task(context: self.context)
// set its value
newTask.title = title
newTask.desc = dec
newTask.date = date
newTask.status = "unCompleted"
// save it to conext
saveContext()
}
func deleteTask(removedTask : Task){
context.delete(removedTask)
saveContext()
}
func changeStatusToCompleted(editedTask : Task){
editedTask.status = "Completed"
saveContext()
}