Your post has been very helpful to me. Thank you.
I would like to ask you if you can create a swift file that groups all the methods (addTask, updateTask, ect) that can then be used in each view.
In swift with uikit I had create CoredataHelper shared class for use in every app with little modify.
You definitely can! I do this in my production apps. I generally then add the helper as an EnvironmentObject so that I can access it when I need it.
You can see my messy source code for one of my apps here. The HelperClasses folder will have the CoreData helper CalculationManager.swift. This updates and deletes items from my CoreData context.
Thank you. It is very difficult, for me. Could you tell me how to extract the methods from your TaskList, since I don't think I can do it?
Here's a branch of the original project with what you're looking to do that's been implemented.
Create a new file with the functions like this one linked here.
In the ContentView.struct file, add let core_data_helper = CoreDataHelper(). Then in the button's actions, call the functions from core_data_helper.
let core_data_helper = CoreDataHelper()
Here's an example of addTask():
self.core_data_helper.addTask(self.taskName, context: self.context)
Here's a link to what ContentView.swift should look like.
Great solution. But, wanting to move from ContentView to CoreDataHelper:
@Environment(.managedObjectContext) var context
sortDescriptors: [NSSortDescriptor(keyPath: \Task.dateAdded, ascending: false)],
predicate: NSPredicate(format: "isComplete == %@", NSNumber(value: false))
) var notCompletedTasks: FetchedResults
How can it be done?
You can, but the @Environment and @FetchRequest are used with SwiftUI views. I wouldn't move the @Environment to make sure that there is a context associated with the view. I also like to leave my FetchRequests in the view because that's where I need the data to be viewed.
Your explanation convinced me. Thank you.
Hi Maegan! This is very helpful. I'm trying to do something similar but using a One-To-Many relationship with Core Data.
Thanks I'm glad you found it useful!
At some point, I'd like to have more posts about Core Data and SwiftUI.
Looking forward to them and I'll keep hoping stackoverflow can come to the rescue haha
I know this feeling all too well! Hacking with Swift is also a great guide!
Been using Paul's resources! It's my favorite but trying to make something is way different than following the guides haha. Appreciate your responsiveness!
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.